社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

16行Python实现3D破坏球效果

Python程序员 • 8 年前 • 730 次点击  

以下是制作上面炫酷动画所需的全部代码:

(如果你对Blender Python完全陌生,访问链接:http://slicker.me/blender/3d_mandelbrot.htm了解如何复制粘贴代码。)

我们需要三组刚体(当您在Blender的对象上打开一个刚体的属性时,Blender将模拟与其它刚体的碰撞):

1.平面
    第2行代码创建了一个简单的平面,立方体将放置在该平面上。为了防止它因重力而坠落,我们将其设为“受体”[第4行代码]。

2. 圆环
    x循环[5-12行代码]创建由18个圆环组成的链条,它们将撞击墙体:
    [6-8行]确定它们的坐标并沿Y轴依次旋转90°。旋转是通过x除以2的余数(获得“0-1-0-1-0...”序列)乘以90度(弧度1.5708)实现的。
    [第10行]将它们的碰撞形状设置为“MESH”。如果设置为默认的"Convex Hull",Blender就不会考虑到中间的孔洞,链条就会脱落。
    [第11-12行]将第一个圆环的"Enabled"属性设置为false,防止由于重力而坠落。这样它就固定在那牵住整个链条。

3. 立方体
    在13-16行代码中,我们创建了一个由10个立方体组成的列,重量非常轻,以便在撞击时飞得更远。
    因为z循环[第13行]嵌套在x循环[第5行]中,我们将得到一个18X10的立方体组成的墙。

    好了!当您点击时间线上的“播放”时,链条就会掉下来,撞上立方体并让它们飞起来!

现在我们让最后一个圆环变大一点,让它看起来更像一个实际的破坏球,而不是用一根链子打破墙壁。为了有更酷的碰撞效果,将第6-8行代码更改为:

下载相关代码请点击此链接:https://od.lk/d/OF8xMzk3MDkxODVf/wreck.blend

你还要打破别的东西吗?让我们来撞碎这个坏小子:

将第13-16行代码替换为:

并在代码的最开始处添加以下行,这样才能使用sin和cos三角函数:

享受破坏的过程吧!


英文原文:http://slicker.me/blender/wreck.htm
译者:钱利鹏



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/OlO6MKqkUa
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/19320