You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.5 KiB
46 lines
1.5 KiB
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* utils.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: narnaud <narnaud@student.42.fr> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2022/05/31 08:59:01 by narnaud #+# #+# */
|
|
/* Updated: 2022/08/23 11:34:18 by narnaud ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "../includes/cub3d.h"
|
|
|
|
void vec_set(t_vec *vec, int x, int y)
|
|
{
|
|
vec->x = x;
|
|
vec->y = y;
|
|
}
|
|
|
|
t_vec vec_mult(t_vec v1, t_vec v2)
|
|
{
|
|
return ((t_vec){v1.x * v2.x, v1.y * v2.y});
|
|
}
|
|
|
|
double dvec_len(t_dvec vec)
|
|
{
|
|
return (sqrt(vec.x * vec.x + vec.y * vec.y));
|
|
}
|
|
|
|
void dvec_set(t_dvec *vec, double x, double y)
|
|
{
|
|
vec->x = x;
|
|
vec->y = y;
|
|
}
|
|
|
|
t_dvec dvec_rot(t_dvec vec, double rad, double init_len)
|
|
{
|
|
double len;
|
|
t_dvec ret;
|
|
|
|
len = dvec_len(vec);
|
|
ret.x = (cos(rad) * vec.x - sin(rad) * vec.y) * init_len / len;
|
|
ret.y = (sin(rad) * vec.x + cos(rad) * vec.y) * init_len / len;
|
|
return (ret);
|
|
}
|
|
|