欢迎光临散文网 会员登陆 & 注册

manim学习笔记(一)

2021-07-24 13:52 作者:神奇的白化棕熊  | 我要投稿

3D曲面

这一部分案例参考了专栏manim进阶篇——关于简单的三维场景效果,并对其中不再适用的部分进行订正,起始源码如下:

Trouble 3:  粘贴到pycharm后可以发现是有错误的

SpecialThreeDScene父类不存在

Solution 3: 将"SpecialThreeDScene"类改为功能相近的"ThreeDScene"

Trouble 4: 运行时仍然报错

'set_camera_to_default_position'属性不存在

Solution 4: 整个类应换用"ThreeDScene"的写法,具体如下

Trouble 5: 上述代码可以运行,但结果有问题。具体表现为图像的u,v定义域与实际显示不符

Solution 5: manim模块更换了定义域的表示方法,我们可以打开ParametricSurface的源文件

uv_func填入表达式,参数表被传给了父类Surface

然后我们跳转到Surface类,发现如下片段

可以看到u、v定义域是以u_range和v_range的方式定义的

看到了u和v的定义格式后,接下来就是如何修改这两个值。我们在Surface类中搜索关键词“range”

u_range和v_range由np.linspace(*self.?_range,n?)定义的

由此可以确定定义域的写法为u_range=(a1,a2), v_range=(b1,b2),以及分辨率写法resolution=(nu,nv)。修改后的整体代码如下

在终端中输入代码并运行

其中*处填入代码存储的文件名

运行结果如下

结果与开篇引用的专栏一致

不出意外的话,下期会做上色相关

manim学习笔记(一)的评论 (共 条)

分享到微博请遵守国家法律