aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_draw_circle.c
blob: 32a16127ca3663a47178b769c6288607bf8ba3ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   ft_draw_circle.c                                   :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: rbousset <marvin@42.fr>                    +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2020/02/18 15:22:51 by rbousset          #+#    #+#             */
/*   Updated: 2020/02/18 15:22:53 by rbousset         ###   ########lyon.fr   */
/*                                                                            */
/* ************************************************************************** */

#include <cub3d.h>
#include <mlx.h>
#include <stdint.h>
#include <math.h>

void
	ft_draw_circle(int32_t a, int32_t b, int32_t color, t_cub *cl)
{
	const uint16_t	scale = cl->mlist->scale / 2.5;
	int				x;
	int				y;
	float	i;
	float	angle;
	float	x1;
	float	y1;

	x = a;
	y = b;

	i = 0;
	while (i < 360)
	{
		angle = i;
		x1 = scale * cos(angle * M_PI / 180);
		y1 = scale * sin(angle * M_PI / 180);
		*(int*)(cl->img.ptr + (x + (int)x1) * 4 + ((y + (int)y1) * cl->img.sizeline)) = color;
		i += 0.1;
	}
}