Tengo un vector euclidiano a
sentado en las coordenadas (0, 1)
. Quiero rotar a
por 90 grados (en sentido horario) alrededor del origen: (0, 0)
.rotaciones 2D vectoriales euclidianas
Si tengo una comprensión adecuada de cómo debería funcionar esto, las coordenadas resultantes (x, y) después de la rotación deberían ser (1, 0)
. Si tuviera que girarlo 45 grados (aún en sentido horario), habría esperado que las coordenadas resultantes fueran (0.707, 0.707)
.
theta = deg2rad(angle);
cs = cos(theta);
sn = sin(theta);
x = x * cs - y * sn;
y = x * sn + y * cs;
Utilizando el código de seguridad, con un valor angle
de 90,0 grados, las coordenadas resultantes son: (-1, 1)
. Y estoy tan malditamente confundido. Los ejemplos que se muestran en los siguientes enlaces representan seguramente la misma fórmula que se muestra arriba?
¿Qué he hecho mal? ¿O he entendido mal cómo se va a girar un vector?
¿Cuáles son los tipos de todas las variables? –
dobla, pero la respuesta fue bastante simple, gracias a Caspar. – dcousens
Además, ¿no es esto en sentido antihorario? –