Я хочу сделать трехмерное вращение Эйлера из двух точек, добавленных в этот скрипт P1, P2 .... это сработает? я хочу использовать их во вращающейся кости для анимации

avatar
Ahmed Askar
9 августа 2021 в 04:06
27
0
0
P1=[0 ,0,0];
P2=[8.560569763183594 -0.7567136883735657 -13.444887459278107 ]; 
v = P2-P1;
disp( v );
%% Let's define si and theta in such a way that.
% v = [r*cos(si)*cos(theta), r*sin(theta), r*sin(si)*cos(theta)]
r = norm(v);
si = atan2(v(3),v(1));
theta = atan2(v(2),sqrt(v(1).^2+v(3).^2));
%%  Rotation matrix;
j = [cos(si)*cos(theta), sin(theta), sin(si)*cos(theta)];
i = [sin(si), 0, -cos(si)];
k = [cos(si)*sin(theta), -cos(theta), sin(si)*sin(theta)];
m = [i',j',k'];  %Rotation matrix
%% to convert rotation matrix to Euler angles
eul = rotm2eul(m,"XYZ")
%%quat = rotm2quat( m )

я хочу знать, если бы я дал этому сценарию две 3d точки, дал бы он мне правильные углы....как я устал, иногда это работает, а иногда нет

Источник

Ответы (0)