【发布时间】:2020-01-11 09:45:18
【问题描述】:
我想将模型沿 x 轴旋转 90 度,应用该旋转,然后对 y 轴和 z 轴执行完全相同的操作。之后,我需要将模型旋转回来。我认为只需对每个轴应用相反的旋转就可以了,但这显然不会成功...
真正令人沮丧的是,代码的“损坏”部分是我正在应用第一轮旋转。如果我手动执行完全相同的过程,我没有这个问题。如果我不应用旋转,这段代码对我来说毫无用处(我用它来获取每个连续旋转的 z 边界)
import bpy
import math
model = bpy.data.objects['model']
zmax = [0, 0, 0]
for i in range(3):
zmax[i] = model.dimensions[2]
model.rotation_euler[i] += math.pi/2 #rotate
model.select_set(True) #select model
bpy.ops.object.transform_apply(rotation=True) #apply rot
for i in range(3):
model.rotation_euler[i] -= math.pi/2 #rotate to original posi
模型似乎只是围绕一个轴旋转,但我无法确定这一点。如果你运行脚本足够多次,它最终会出现在同一个位置。
【问题讨论】:
-
如果您在这里找不到帮助,您也可以考虑将您的问题发布到Blender SE。
-
我不是 Blender 脚本方面的专家,但相对于世界空间或对象空间可能会发生旋转。也许你用错了。
-
您的步骤与仅以相反的顺序读取三个维度值有何不同?