C4D中使用python脚本一键生成“福特圆”
北京/设计爱好者/3年前/1518浏览
版权
C4D中使用python脚本一键生成“福特圆”
前阵子了解到福特圆的特性,就考虑能不能用C4D一键生成。总结成一片文章分享给感兴趣的站友。
在做“福特圆”之前,要了解什么是福特圆?
了解之后,大概知道了以下信息:
- 两个分数的法里和:a/b+c/d=(a+c)/(b+d)
- A圆的坐标(a/b,1/2b²),B圆的坐标(c/d,1/2d²),C圆的坐标为((a+c)/(b+d),1/2(b+d)²)且与A,B两个圆相切并与X轴相切。
下面开始构思:
- 要知道【哪些圆组合】产生第三个圆,并迭代下去。
- 利用知道的【法里和公式】计算出每组圆产生的第三个圆。
【思考一】(以下的数字均代表圆的序号,用python列表表示两个圆与生成第三个圆的“组合配方”)
我从前几次组合总结到:
[0,1,2]
[0,2,3],[1,2,4]
[0,3,5],[2,3,6],[1,4,8],[2,4,9]
.......
- 一个组合分裂成了两个可产生圆的“组合配方”,每一行的列表数量呈2的幂数增长。
- 每个列表的第三个元素都是新生成的圆的序号。
- 这个规律的前提是,首先已经有两个圆,才能产生[0,1,2]。
有了这个”组合配方“,只要遍历并赋值给圆的参数就可以了。
【思考二】
我构想在C4D中,在一个【空对象】下通过python脚本新建圆并赋值给相关参数,逐个生成新圆。
首先要让圆知道自己是由那两个圆产生的,并记录在自己身上,方便后面产生的圆读取。
- 首先创建两个初始圆A和B,坐标分别为(0/1,1),(1/1,1)。
在新圆上创建【用户数据】,用于保存那个‘配方列表’和需要的信息。
- 创建圆,根据配方找到上一代的圆并读取参数经过【法里和公式】计算赋值给新的圆。
- 重复遍历产生新的圆。
在选中的对象上,修改该对象的名字,输入要产生圆的数量。即可产生相应数量的【福特圆】,这样方便。
在程序上做了个保险,迭代数量过大提示窗口并推出。
可以得到:
以上就是一键产生福特圆的分享。
更多的玩法:可以使用C4D中的【分裂】和【动态样条】做出不错的动画来。
=================================================
【脚本下载】
链接:https://pan.baidu.com/s/1-ChwVIsyFI8FB0L092v7zA 提取码:nftn
【使用方法】
- shift+F11打开【脚本管理器】
- 【文件】——【导入脚本】——选择脚本即可。
- 在场景中创建一个【空对象】并将名字改为要创建圆的数量,例如“200”。
- 点击【脚本管理器】右下角的【执行】即可看到生成的一大堆圆了。
7
举报
声明
14
分享
相关推荐
评论你的想法~
表情
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
你可能喜欢
相关收藏夹
登录注册
7登录即可同步推荐记录哦
14登录即可加入我的收藏
评论登录即可评论想法
分享分享
















































































