3D 对象的渲染、变换与动画制作
1. 3D 对象的基础渲染与相关问题
1.1 八面体边缘绘制
在处理 3D 对象时,我们可以从八面体的边缘绘制开始。八面体的顶部坐标为 (0, 0, 1),底部坐标为 (0, 0, -1),在 x-y 平面上有四个点分别为 (1, 0, 0)、(0, 1, 0)、(-1, 0, 0) 和 (0, -1, 0)。我们可以通过以下代码找出定义八面体 12 条边的向量对,并在 Python 中绘制所有边:
top = (0,0,1)
bottom = (0,0,-1)
xy_plane = [(1,0,0),(0,1,0),(-1,0,0),(0,-1,0)]
edges = [Segment3D(top,p) for p in xy_plane] +\
[Segment3D(bottom, p) for p in xy_plane] +\
[Segment3D(xy_plane[i],xy_plane[(i+1)%4]) for i in range(0,4)]
draw3d(*edges)
1.2 八面体面的顶点顺序问题
对于八面体的一个面,例如 [(1, 0, 0), (0, 1, 0), (0, 0, 1)],它并不是唯一有效的顶点书写顺序。像 [(0, 1, 0), (0, 0, 1), (1, 0, 0)] 也是相同的三个点,并且在这个顺序下叉积仍然指向相同的方向。
1.3 3D 向量的基本特性
- 2D 向量有长度和宽度,而
超级会员免费看
订阅专栏 解锁全文
2182

被折叠的 条评论
为什么被折叠?



