fdf/src/fdf_rotations.c
2024-12-08 13:21:18 +01:00

47 lines
993 B
C

#include "fdf.h"
void rotate_x(t_point_3d **points, double angle, int size)
{
int i;
double previous_y;
i = 0;
while (i < size)
{
previous_y = (*points)[i].y;
(*points)[i].y = previous_y * cos(angle) + (*points)[i].z * sin(angle);
(*points)[i].z = -previous_y * sin(angle) + (*points)[i].z * cos(angle);
i++;
}
}
void rotate_y(t_point_3d **points, double angle, int size)
{
int i;
double previous_x;
i = 0;
while (i < size)
{
previous_x = (*points)[i].x;
(*points)[i].x = previous_x * cos(angle) + (*points)[i].z * sin(angle);
(*points)[i].z = -previous_x * sin(angle) + (*points)[i].z * cos(angle);
i++;
}
}
void rotate_z(t_point_3d **points, double angle, int size)
{
int i;
double previous_x;
double previous_y;
i = 0;
while (i < size)
{
previous_x = (*points)[i].x;
previous_y = (*points)[i].y;
(*points)[i].x = previous_x * cos(angle) - previous_y * sin(angle);
(*points)[i].y = previous_x * sin(angle) + previous_y * cos(angle);
i++;
}
}