Здесь у меня есть 3-й лев, и я хочу превратить его льва вперед.
Но после преобразования, использующего формулу Родригеса, лев повернулся вперед, и он тоже превратился в собаку или просто в льва.
Понятия не имею, почему?
Я использовал вектор глаз, чтобы регулировать льва параллельно координате х, и использовал вектор носа, чтобы регулировать льва параллельно координате z.
def rotate_center(points1):
up = np.array(points1[506]).reshape((1, 3))
down = np.array(points1[591]).reshape((1, 3))
upDown_orig = np.array(up - down).reshape((1, 3))
d_upDown = np.sqrt(np.power(upDown_orig[0, 0], 2) + np.power(upDown_orig[0, 1], 2) + np.power(upDown_orig[0, 2], 2))
upDown_new = np.array([[0, 0, d_upDown]])
rotate_matrix_1 = rotate(upDown_orig, upDown_new)
result_1 = np.dot(rotate_matrix_1, points1.T).T
right = np.array(result_1[1104]).reshape((1, 3))
left = np.array(result_1[463]).reshape((1, 3))
LR_orig = np.array(left - right).reshape((1, 3))
d_LR = np.sqrt(np.power(LR_orig[0, 0], 2) + np.power(LR_orig[0, 1], 2) + np.power(LR_orig[0, 2], 2))
LR_new = np.array([[d_LR, 0, 0]])
rotate_matrix_2 = rotate(LR_orig, LR_new)
result_2 = np.dot(rotate_matrix_2, result_1.T).T
#plot_3d(result_2)
return result_2