PythonでBlenderのオブジェクトを操作する(Quaternion)
Quaternion
を使ってオブジェクトを回転させます。
Math Types & Utilities (mathutils) — Blender 2.63.7 - API documentation
オブジェクトの移動がわかりやすくなるように目安の円を描きます。
bpy.ops.mesh.primitive_circle_add(location=(0,0,0), radius=4, rotation=(0,0,0)) bpy.ops.mesh.primitive_circle_add(location=(0,0,0), radius=4, rotation=(pi/2,0,0)) bpy.ops.mesh.primitive_circle_add(location=(0,0,0), radius=4, rotation=(pi/2,0,pi/2))
トーラスを描きます。
bpy.ops.mesh.primitive_torus_add(location=(4,0,0), major_radius=0.5) obj = bpy.context.active_object
Quaternion
を使ってトーラスを移動します。
Quaternion
のベクトル(虚部)を(0,0,1)
にとって、z軸を中心に回転をさせていきます。
obj.location.rotate(Quaternion((cos((pi/16)/2), 0.0, 0.0, sin((pi/16)/2)))) obj.location.rotate(Quaternion((cos((pi/16)/2), 0.0, 0.0, sin((pi/16)/2)))) obj.location.rotate(Quaternion((cos((pi/16)/2), 0.0, 0.0, sin((pi/16)/2))))
円の上にトーラスが乗っていることがわかります。