Appearance
组合体
组合体是由两个或更多其他对象组成的。组合体是一个单一的对象,可以像操作单个对象一样对其进行操作。一旦创建,组成对象将失去其身份,无法更改,但整个组合体可以移动。(相比之下,用于创建 组 的对象保留其各自的身份,并且可以移动、旋转等)。与组相比,组合体的计算成本较低。
常用属性
python
compound(objectlist, pos=vec(3, 2, 0), axis=vec(1, 1, 0))
参数名 | 类型 | 说明 |
---|---|---|
first_argument | 列表 | 要合并的对象列表。请参阅下面的代码示例。 |
origin | 向量 | 复合对象的 pos 的位置。默认为边界框的中心。 |
pos | 向量 | 复合对象的位置。默认为 <0,0,0>。更改 pos 会移动整个对象。 |
axis | 向量 | 忽略大小;仅使用方向。默认为 <1,0,0>。 |
color | 向量 | 修改整个复合对象的颜色。默认为 color.white |
size | 向量 | 边界框的尺寸。默认为 <1,1,1>。更改 size 不会 改变 axis,反之亦然。 |
页面顶部图像中的锤子由以下代码创建:
python
handle = cylinder(size=vec(1, 0.2, 0.2), color=vec(0.72, 0.42, 0))
head = box(size=vec(0.2, 0.6, 0.2), pos=vec(1.1, 0, 0), color=color.gray(0.6))
hammer = compound([handle, head])
hammer.axis = vec(1,1,0)
不常用属性
python
compound(canvas=mycanvas, emissive=False)
参数名 | 类型 | 说明 |
---|---|---|
opacity | 标量 | 默认为1.0;范围0-1。 |
shininess | 标量 | 默认为0.6;范围0-1。 |
emissive | 布尔值 | 默认为False。如果为True,则对象发光,失去所有阴影效果。 |
visible | 布尔值 | 如果为False,对象不显示。默认为True。 |
texture | 类元素 或 路径 | 整个组合体的纹理。默认为None。 |
canvas | 对象 | 默认为 scene。 |
make_trail | 布尔值 | 如果为True,对象移动时会留下轨迹。 |
up | 向量 | 与轴线垂直的向量。 |
组合体的限制
以下对象无法合并:标签、灯光、曲线、螺旋线。要合并的所有对象必须位于同一画布中,并且组合体本身也必须位于画布中。无法将组合体克隆到不同的画布,但可以将组合体克隆到同一画布以制作多个副本。
组合体与世界坐标
如果组合体对象已移动、旋转或调整大小,则其内部坐标可能与世界坐标不同。如果 v1 例如是 mycompound 中一个对象的原始位置:
newv1 = mycompound.compound_to_world( v1 )
给出了世界坐标中的新位置。
v2 = mycompound.world_to_compound( newv2)
将世界坐标转换为内部坐标。