在这里,我有一头3d的狮子,我想将狮子的脸变向前。
但是在使用Rodriguez公式进行转换之后,狮子面朝前方,并且它也变成了一只狗,或者只是一只没有狮子的东西。
我不知道为什么?
我用眼睛的向量将狮子调整为平行于x坐标,而鼻子使用的向量将狮子调整为平行于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