当旋转和平移同时需要作用在同一个几何体上时,他们的作用效果是有先后顺序的。写代码时,哪个离几何体近,哪个就优先生效。由于几何体放置在当前代码行最右侧,因此最右侧的旋转平移会先生效,最左侧,也就是距离等号最近的旋转平移会最后生效。

示例:

# 先缩放,然后平移,最后旋转
cube = rotate(Vec3(0,0,1), pi/2) * translate(100,100) * scale(500,200,400) * Cube()
# 先缩放,然后旋转,最后平移
cube = translate(100,100) * rotate(Vec3(0,0,1), pi/2) * scale(500,200,400) * Cube()

当缩放遇到旋转平移,请将缩放放到第一步,然后再进行旋转平移。