void				ft_draw_circle(SDL_Surface *s, t_pt c, int r, int cl)
{
	int				x;
	int				y;
	int				radius_error;

	x = r;
	y = 0;
	radius_error = 1 - x;
	while (x >= y)
	{
		ft_put_pixel(s, x + c.x, y + c.y, cl);
		ft_put_pixel(s, y + c.x, x + c.y, cl);
		ft_put_pixel(s, -x + c.x, y + c.y, cl);
		ft_put_pixel(s, -y + c.x, x + c.y, cl);
		ft_put_pixel(s, -x + c.x, -y + c.y, cl);
		ft_put_pixel(s, -y + c.x, -x + c.y, cl);
		ft_put_pixel(s, x + c.x, -y + c.y, cl);
		ft_put_pixel(s, y + c.x, -x + c.y, cl);
		y++;
		if (radius_error < 0)
			radius_error += 2 * y + 1;
		else
		{
			x--;
			radius_error += 2 * (y - x + 1);
		}
	}
}
Exemple #2
0
static void		ft_draw_floor(t_mlx *mx, int x, int y, int pixel)
{
	if (mx->b & 4)
		ft_set_floor(mx, &mx->map.floor, x, y);
	else
		ft_put_pixel(&mx->v, mx->data, pixel, CEILING);
}
Exemple #3
0
static void		ft_draw_sky(t_mlx *mx, int x, int y, int pixel)
{
	if (mx->b & 1)
		ft_set_sky(mx, &mx->map.sky, x, y);
	else
		ft_put_pixel(&mx->v, mx->data, pixel, SKY);
}
Exemple #4
0
void	draw(t_env *e)
{
	int i;
	int j;

	i = 0;
	j = 0;
	if ((e->inc = malloc(sizeof(t_inc))) == NULL)
		exit(0);
	if ((e->box = malloc(sizeof(t_box))) == NULL)
		exit(0);
	while (i < e->coord[0][0]->size_y)
	{
		j = 0;
		while (j < e->coord[i][0]->size_x)
		{
			ft_put_pixel(e, i, j);
			j++;
		}
		i++;
	}
	mlx_put_image_to_window(e->mlx, e->win, e->img, 0, 0);
	free(e->inc);
	free(e->box);
}
Exemple #5
0
void	ft_draw(int x2, int y2, t_env *e)
{
	e->tmpx = e->x_prim;
	e->tmpy = e->y_prim;
	e->dx = abs(x2 - e->x_prim);
	e->dy = abs(y2 - e->y_prim);
	e->sx = e->x_prim < x2 ? 1 : -1;
	e->sy = e->y_prim < y2 ? 1 : -1;
	e->error = (e->dx > e->dy ? e->dx : -(e->dy)) / 2;
	while (!(e->tmpy == y2 && e->tmpx == x2))
	{
		ft_put_pixel(e, e->tmpx, e->tmpy, e->color);
		e->tmp_error = e->error;
		if (e->tmp_error > -(e->dx))
		{
			e->error -= (e->dy);
			e->tmpx += e->sx;
		}
		if (e->tmp_error < (e->dy))
		{
			e->error += (e->dx);
			e->tmpy += e->sy;
		}
	}
}
Exemple #6
0
static void		ft_draw_wall(t_mlx *mx, int y, int pixel)
{
	if (mx->map.data[mx->v.map.x][mx->v.map.y] > 2 && mx->b & 2)
		ft_apply_texture(&mx->map, &mx->v, mx->height, y);
	else
		ft_set_color(&mx->v);
	ft_put_pixel(&mx->v, mx->data, pixel, WALL);
}
Exemple #7
0
void	ft_wolf_5(t_env *e)
{
	e->y = 0;
	while (e->y < WIN_Y)
	{
		if (e->y < e->draw_start)
			e->color = 0xE077B5FE;
		else if (e->y > e->draw_end)
			e->color = 0xABD473;
		else if (e->ray_dir_x >= 0 && e->side == 0)
			e->color = 0xC41F3B;
		else if (e->ray_dir_x <= 0 && e->side == 0)
			e->color = 0xFFF569;
		else if (e->ray_dir_y <= 0 && e->side == 1)
			e->color = 0xFF7D0A;
		else
			e->color = 0x0070DE;
		ft_put_pixel(e, e->x, e->y, e->color);
		e->y++;
	}
}
Exemple #8
0
int			ft_print(t_env *e)
{
	size_t		x;
	size_t		y;

	y = 0;
	mlx_destroy_image(e->mlx, e->im);
	mlx_clear_window(e->mlx, e->win);
	e->im = mlx_new_image(e->mlx, WIN_X, WIN_Y);
	while (y < e->cnt_line)
	{
		x = 0;
		while (x < e->cnt_col)
		{
			ft_iso(x, y, e);
			++x;
		}
		++y;
	}
	ft_put_pixel(e, e->tmpx, e->tmpy, e->color);
	mlx_put_image_to_window(e->mlx, e->win, e->im, 0, 0);
	return (0);
}