12、3D 对象的渲染、变换与动画制作

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 向量有长度和宽度,而
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值