相変わらず Blender Add-on を書いている私です。
ある座標にある点 (x, y, z) をそれぞれの軸基準に回転させたくなったので、
その方法を書いておきます。
といっても方法は簡単で、回転行列を使ってあげるだけ。
回転する角度は rotation(x, y, z)
で、座標は point(x, y, z)
で入力する
import math import numpy as np rotation_x = math.radians(rotation[0]) * -1 rotation_y = math.radians(rotation[1]) rotation_z = math.radians(rotation[2]) rot_x = np.array([ [1, 0, 0], [0, math.cos(rotation_x), -math.sin(rotation_x)], [0, math.sin(rotation_x), math.cos(rotation_x)] ]) rot_y = np.array([ [math.cos(rotation_y), 0, -math.sin(rotation_y)], [0, 1, 0], [math.sin(rotation_y), 0, math.cos(rotation_y)] ]) rot_z = np.array([ [math.cos(rotation_z), -math.sin(rotation_z), 0], [math.sin(rotation_z), math.cos(rotation_z), 0], [0, 0, 1] ]) r = np.array([point[0], point[1], point[2]]) r = rot_x @ r r = rot_y @ r r = rot_z @ r print(r)
おわり