Esempio n. 1
0
int				ft_draw_fractal(t_var *v)
{
	int color;
	int x;
	int y;
	int	i;

	y = 0;
	while (y < v->win_h)
	{
		x = 0;
		while (x < v->win_w)
		{
			if (v->type == 1 || v->type == 3)
				i = ft_mandel(v, x, y);
			else if (v->type == 2)
				i = ft_julia(v, x, y);
			color = ft_hsv(i % 256, v->ftl, i);
			ft_pixel_put(v, x, y, color);
			x++;
		}
		y++;
	}
	mlx_put_image_to_window(v->mlx, v->win, v->img, 0, 0);
	return (0);
}
Esempio n. 2
0
void	ft_grid(t_env *e)
{
	t_pts	*coord;
	t_color	c;
	int		x;
	int		y;

	coord = e->pts;
	c.r = 255;
	while (coord)
	{
		x = (coord->x) * 4 + 10 - coord->z;
		y = (coord->y) * 4 + 10 - coord->z;
		if (coord->z != 0)
		{
			c.b = 0;
			c.g = 0;
		}
		else
		{
			c.b = 255;
			c.g = 255;
		}
		ft_pixel_put(e, x, y, &c);
		coord = coord->next;
	}
}
Esempio n. 3
0
File: draw.c Progetto: Xethan/fdf
void	point_and_line(t_env e, size_t x, size_t y)
{
	ft_pixel_put(e, e.map[y][x].z, e.map[y][x].x, e.map[y][x].y);
	if (x != e.x - 1)
		if (is_map(e, x, y) || is_map(e, x + 1, y))
			draw_segment(e, e.map[y][x], e.map[y][x + 1]);
	if (y != e.y - 1)
		if (is_map(e, x, y) || is_map(e, x, y + 1))
			draw_segment(e, e.map[y][x], e.map[y + 1][x]);
}
Esempio n. 4
0
File: draw.c Progetto: Xethan/fdf
void	right_draw(t_env e, t_point p1, t_point p2, float a)
{
	float	flt;
	float	b;

	b = p1.y - a * p1.x;
	(p2.x - p1.x > 0) ? p1.x++ : p1.x--;
	while (p1.x != p2.x)
	{
		flt = a * p1.x + b;
		p1.y = (int)roundf(flt);
		p2.z = (p2.z > p1.z) ? p2.z : p1.z;
		ft_pixel_put(e, p2.z, p1.x, p1.y);
		(p2.x - p1.x > 0) ? p1.x++ : p1.x--;
	}
}
Esempio n. 5
0
File: draw.c Progetto: Xethan/fdf
void	down_draw(t_env e, t_point p1, t_point p2, float a)
{
	float	flt;
	float	b;

	b = p1.y - a * p1.x;
	(p2.y - p1.y > 0) ? p1.y++ : p1.y--;
	while (p1.y != p2.y)
	{
		if (p2.x != p1.x)
		{
			flt = (p1.y - b) / a;
			p1.x = (int)roundf(flt);
		}
		p2.z = (p2.z > p1.z) ? p2.z : p1.z;
		ft_pixel_put(e, p2.z, p1.x, p1.y);
		(p2.y - p1.y > 0) ? p1.y++ : p1.y--;
	}
}
Esempio n. 6
0
void		bird(t_env *env, int *i)
{
	double		n;
	double		tmp;

	ECR = (env->f.x + DECALX) / (double)env->f.zoom + env->f.x1;
	ECI = (env->f.y + DECALY) / (double)env->f.zoom + env->f.y1;
	EZR = 0;
	EZI = 0;
	n = EZR * EZR + EZI * EZI;
	while (++(*i) < ITERM && n < 4)
	{
		tmp = EZI;
		EZI = ((EZR * EZR * 3) - (EZI * EZI)) * fabs(EZI) + ECI;
		EZR = ((EZR * EZR) - (tmp * tmp * 3)) * fabs(EZR) + ECR;
		n = EZR * EZR + EZI * EZI;
	}
	ft_pixel_put(env, color(*i, (EZR * EZR + EZI * EZI), env));
}
Esempio n. 7
0
void	cubic_mandelbrot(t_env *env, int *i)
{
	double n;
	double tmp;

	env->f.cr = (env->f.x + DECALX) / env->f.zoom + env->f.x1;
	env->f.ci = (env->f.y + DECALY) / env->f.zoom + env->f.y1;
	env->f.zr = 0;
	env->f.zi = 0;
	n = EZR * EZR + EZI * EZI;
	while (n < 4 && ++(*i) < env->f.iter_max)
	{
		tmp = env->f.zr;
		env->f.zr = EZR * EZR * EZR - 3 * EZR * EZI * EZI + env->f.cr;
		env->f.zi = 3 * tmp * tmp * EZI - EZI * EZI * EZI + env->f.ci;
		n = EZR * EZR + EZI * EZI;
	}
	ft_pixel_put(env, color(*i, (EZR * EZR + EZI * EZI), env));
}