rotacion 2d
Publicado por felipe (74 intervenciones) el 30/12/2020 02:58:43
esta función me arroja valores incorrectos y no se el por qué
rotar un punto 2d usando matrices de rotación
(es rotacion horaria para angulos positivos)
por ejemplo al querer rotar el punto (0,1) 90 grados, la función debería retornar el vector (0,-1)
y retorna 3.13916e-007 en X, y unicamente en la coordenada "Y" devuelve el resultado correcto (-1)
rotar un punto 2d usando matrices de rotación
1
2
3
4
5
6
7
8
9
10
11
12
struct vec2{
float x,y;
}
vec2 rotate(vec2 v, float angle){
float angleRad = a * 3.141592f / 180.0f; // angulo a radianes
vec2 r; // vector resultante de la rotación
r.x = v.x * cos(angle) + v.y * sin(angle);
r.y = -v.x * sin(angle) + v.y * cos(angle);
return r;
}
(es rotacion horaria para angulos positivos)
por ejemplo al querer rotar el punto (0,1) 90 grados, la función debería retornar el vector (0,-1)
y retorna 3.13916e-007 en X, y unicamente en la coordenada "Y" devuelve el resultado correcto (-1)
Valora esta pregunta


0