aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_draw_circle.c
blob: 6d37c52811b2dcd88098d6ce04893a665815f25a (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
42
/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   ft_draw_circle.c                                   :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: joelecle <marvin@42.fr>                    +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2020/02/18 15:22:51 by joelecle          #+#    #+#             */
/*   Updated: 2020/02/18 15:22:53 by joelecle         ###   ########lyon.fr   */
/*                                                                            */
/* ************************************************************************** */

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

void
	ft_draw_circle(float a, float b, int32_t color, t_cub *cl)
{
	float	scale;
	float	i;
	float	angle;
	float	x1;
	float	y1;

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