ret->mx = ft_matrix_rx(0.959931);
ret->my = 0;
ret->mz = ft_matrix_rz(0.785398);
ret->vo = ft_init_coord(ret);
ret->v = ft_init_coord(ret);
ret->ri = ft_multiply_matrix(ret->mx, ret->mz);
ret->r = ft_alloc_matrix();
if (keycode == 0)
run->map->r = ft_multiply_matrix(run->map->ri, ft_matrix_rz(0.0872665));
if (keycode == 1)
run->map->r = ft_multiply_matrix(ft_matrix_rx(0.0872665), run->map->ri);
if (keycode == 2)
run->map->r = ft_multiply_matrix(run->map->ri, ft_matrix_rz(-0.0872665));
if (keycode == 13)
run->map->r = ft_multiply_matrix(ft_matrix_rx(-0.0872665), run->map->ri);
if (keycode == 0 || keycode == 1 || keycode == 2 || keycode == 13)
run->map->ri = run->map->r;
ft_calculate_point(run->map, run->map->ri, run->map->vo);
double **ft_multiply_matrix(double **m1, double **m2)
{
double **ret;
int i;
int j;
int k;
ret = ft_alloc_matrix();
if (!ret)
exit (EXIT_FAILURE);
i = -1;
while (++i < 3)
{
j = -1;
while (++j < 3)
{
k = -1;
while (++k < 3)
ret[i][j] += m1[i][k] * m2[k][j];
}
}
return (ret);
}
void ft_calculate_point(t_map *map, double **r, t_point **vo)
{
int i;
int j;
j = 0;
while (j < map->hgt)
{
i = 0;
while (i < map->wdt)
{
map->v[j][i].x = vo[j][i].x * r[0][0] + vo[j][i].y * r[0][1] + vo[j][i].z * r[0][2];
map->v[j][i].y = vo[j][i].x * r[1][0] + vo[j][i].y * r[1][1] + vo[j][i].z * r[1][2];
map->v[j][i].z = vo[j][i].x * r[2][0] + vo[j][i].y * r[2][1] + vo[j][i].z * r[2][2]; // je sais pas si cette ligne sert à quelque chose...
map->v[j][i].color = 0xff;
i++;
}
j++;
}
}
R=Rx(-90)@Rz(-45)
for t in range(7) :
proj(R,T42)
R=Rx(15)@R
void ft_change_coord(t_running *run)
{
int i;
int j;
int p;
p = 30;
j = 0;
while (j < run->map->hgt)
{
i = 0;
while (i < run->map->wdt)
{
run->map->vo[j][i].x *= p / (p - run->map->vo[j][i].z);
run->map->vo[j][i].y *= p / (p - run->map->vo[j][i].z);
i++;
}
j++;
}
}
ça marche pas trop sur les grosse map
if (map->wdt > map->hgt)
p = map->space * (30 + map->wdt);
else
p = map->space * (30 + map->hgt);
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :