Exemplo n.º 1
0
unsigned int				*buddhabrot(int bailout, int iter)
{
	t_pos			*sequence;
	int				n, i, ix, iy;
	long double			x, y;
	unsigned int *image = (unsigned int *)malloc(BUDDHA_WIN_X * BUDDHA_WIN_Y * sizeof(unsigned int));

	sequence = (t_pos *)malloc(sizeof(t_pos) * iter);
	ft_bzero(sequence, sizeof(t_pos) * iter);
	ft_bzero(image, sizeof(int) * BUDDHA_WIN_X * BUDDHA_WIN_Y);
	srand48((unsigned int)time(NULL));
	for (int t = 0; t < bailout; t++)
	{
		ft_fprintf(2, "Buddhabrot: Processing: %f%%\r", (float)t * 100 / (float)bailout);
		fflush(stdout);
		for (int tt = 0; tt < 1000000; tt++)
		{
			x = 6 * drand48() - 3;
			y = 6 * drand48() - 3;
			if (mandel_iter(iter, x, y, &n, sequence))
			{
				for (i = 0; i < n; i++)
				{
					ix = 0.3 * BUDDHA_WIN_X * (sequence[i].x + 0.5) + BUDDHA_WIN_X / 2;
					iy = 0.3 * BUDDHA_WIN_Y * sequence[i].y + BUDDHA_WIN_Y / 2;
					if (ix >= 0 && iy >= 0 && ix < BUDDHA_WIN_X && iy < BUDDHA_WIN_Y)
						image[iy*BUDDHA_WIN_X+ix]++;
				}
			}
		}
	}
	return (image);
}
Exemplo n.º 2
0
void	draw_down(t_param *param)
{
	param->zoom.y1 = param->zoom.y1 * 1.1;
	if (param->wich == 1)
		mandel_iter(param, &param->zoom);
	else if (param->wich == 2)
		julia_iter(param, &param->zoom);
	else if (param->wich == 3)
		burning_iter(param, &param->zoom);
}
Exemplo n.º 3
0
void	draw_left(t_param *param)
{
	param->zoom.x1 = param->zoom.x1 / 1.1;
	if (param->wich == 1)
		mandel_iter(param, &param->zoom);
	else if (param->wich == 2)
		julia_iter(param, &param->zoom);
	else if (param->wich == 3)
		burning_iter(param, &param->zoom);
}
Exemplo n.º 4
0
void	iter_moins(t_param *param)
{
	param->zoom.iter_max = param->zoom.iter_max - 5;
	if (param->wich == 1)
		mandel_iter(param, &param->zoom);
	else if (param->wich == 2)
		julia_iter(param, &param->zoom);
	else if (param->wich == 3)
		burning_iter(param, &param->zoom);
}