/* ************************************************************************** */ /* */ /* ::: o_ :::::: ::: */ /* project_isometric.c :+: / :+::+: :+: */ /* +:+ > +:++:+ +:+ */ /* By: whaffman +#+ +:+ +#++#++:++#++ */ /* +#+ +#+#+ +#++#+ +#+ \o/ */ /* Created: 2024/12/13 15:23:19 by whaffman #+#+# #+#+# #+# #+# | */ /* Updated: 2024/12/13 15:23:19 by whaffman ### ### ### ### / \ */ /* */ /* ************************************************************************** */ #include "fdf.h" void project_isometric(t_fdf *fdf) { int i; double x; double y; i = 0; if (fdf->zoom == 0) fdf->zoom = fmin(fdf->mlx->width / fdf->map->width, fdf->mlx->height / fdf->map->height) / SQRT2; while (i < fdf->map->width * fdf->map->height) { x = (fdf->map->rot[i].x - fdf->map->rot[i].y) / SQRT2; y = (fdf->map->rot[i].x + fdf->map->rot[i].y - 2 * fdf->map->rot[i].z) / SQRT6; fdf->map->proj[i].x = x * fdf->zoom + fdf->offset_x; fdf->map->proj[i].y = y * fdf->zoom + fdf->offset_y; fdf->map->proj[i].color = fdf->map->rot[i].color; i++; } }