Ejemplo n.º 1
0
void		draw_test(t_threads *t)
{
	int i;
	int x;

	while (++t->begin <= t->end && (x = -1))
		while (++x < X_SIZE && (i = -1))
		{
			PARAM->z_r = x / PARAM->zoom + PARAM->x1;
			PARAM->z_i = t->begin / PARAM->zoom + PARAM->y1;
			while (PARAM->z_r * PARAM->z_r + PARAM->z_i * PARAM->z_i < 4
				&& ++i < PARAM->iter)
			{
				PARAM->tmp = PARAM->z_r;
				PARAM->z_r = fabs(PARAM->z_r * PARAM->z_r - PARAM->z_i *
					PARAM->z_i) + PARAM->c_r;
				PARAM->z_i = 2 * PARAM->z_i * PARAM->tmp + PARAM->c_i;
			}
			if (i == PARAM->iter)
				pixel_to_image(t->e, x, t->begin, 0);
			else
				pixel_to_image(t->e, x, t->begin, PARAM->col * i / PARAM->iter);
		}
	pthread_exit(NULL);
}
Ejemplo n.º 2
0
void		creator(t_env *env)
{
	int		px;
	int		py;
	int		x;
	int		y;
	unsigned int color;

	srand(clock());
	px = L_SIZE / CNBR;
	py = H_SIZE / CNBR;
	y = 0;
	color = (unsigned int)rand();
	while (y != H_SIZE)
	{
		x = 0;
		while (x != L_SIZE)
		{
			if (env->tab[x / px][y / py] > 0)
				pixel_to_image(env, x, y, color);
			else if (env->tab[x / px][y / py] == -1)
				pixel_to_image(env, x, y, 0xFF0000);
			else
				pixel_to_image(env, x, y, 0x000000);
			x++;
		}
		y++;
	}
}
Ejemplo n.º 3
0
void		ship(t_env *env)
{
	t_frct		f;

	while (env->i != 0)
	{
	}
	f.minx = env->xmin;
	f.maxx = env->xmax;
	f.miny = env->ymin;
	f.maxy = env->ymax;
	env->i = 1;
	while(env->tbool == 1)
	{
		f.x = f.minx - 1;
		f.zoomx = L_SIZE / (env->tot);
		f.zoomy = H_SIZE / (env->tot);
		while (++f.x < f.maxx)
		{
			f.y = f.miny - 1;
			while (++f.y < f.maxy)
			{
				f.c.r = (f.x / f.zoomx) + env->x1;
				f.c.i = (f.y / f.zoomy) + env->y1;
				f.z.r = mandelship_move(env, (double)(env->mox * 2 / (double)L_SIZE - 1));
				f.z.i = mandelship_move(env, (double)(env->moy * 2 / (double)H_SIZE - 1));
				f.i = 0;
				while ((((f.z.r * f.z.r) + (f.z.i * f.z.i)) < 4) && (f.i < env->maxite))
				{
					f.tmp = f.z.r;
					f.z.r = (f.z.r * f.z.r) - (f.z.i * f.z.i) + f.c.r;
					f.z.r = fabs(f.z.r);
					f.z.i = (2 * f.z.i * f.tmp) + f.c.i;
					f.z.i = fabs(f.z.i);
					f.i++;
				}
				if (f.i == env->maxite)
				{
					pixel_to_image(env, f.x, f.y, get_color(30, 2, 2));
				}
				else if (f.i % 2 == 0)
					pixel_to_image(env, f.x, f.y, 0x200000 + get_color(f.i * 255 / env->maxite, 0, 0));
				else
					pixel_to_image(env, f.x, f.y, 0x110000 + get_color(f.i * 255 / env->maxite, 0, 0));
			}
		}
	}
	env->threadcount--;
	pthread_exit(NULL);
}
Ejemplo n.º 4
0
void	draw_line(t_env *env, t_point a, t_point b)
{
	int		i;
	t_line	line;

	if (env->ft_point_mode)
		draw_line_transform(&line, a, b, 1);
	else
		draw_line_transform(&line, a, b, 0);
	i = 0;
	while (i < line.length)
	{
		if ((line.x + env->pos.x) < WIN_WIDTH
				&& (line.y + env->pos.y) < WIN_HEIGHT
				&& (line.x + env->pos.x) > 0
				&& (line.y + env->pos.y) > 0)
		{
			env->tmp = i;
			pixel_to_image(ft_altitude_color(env, a, b, line), env,
					line.x + env->pos.x, line.y + env->pos.y);
		}
		line.x += line.addx;
		line.y += line.addy;
		i++;
	}
}
Ejemplo n.º 5
0
void	draw_the_sky(int x, t_data *val, int draw_end, int draw_start)
{
	while (draw_start < draw_end)
	{
		pixel_to_image(0x000000FF, val, x, draw_start);
		draw_start++;
	}
}
Ejemplo n.º 6
0
void	MlxLib::draw_square(int x_origine, int y_origine, int color)
{
  x_origine *= _sqsize;
  y_origine *= _sqsize;
  for (int y = y_origine; y < (y_origine + _sqsize); y++) {
    for (int x = x_origine; x < (x_origine + _sqsize); x++) {
      pixel_to_image(x, y, TCOLOR(color));
    }
  }
}
Ejemplo n.º 7
0
void	draw_2_0(int x, t_data *val, double draw_end, double draw_start)
{
	while (draw_start < draw_end)
	{
		if (val->grid[val->map_x][val->map_y] == 9)
		{
			if (val->side == 1)
				pixel_to_image(0x00000000, val, x, draw_start);
			else
				pixel_to_image(0x00FFFFFF, val, x, draw_start);
		}
		else
		{
			if (val->side == 1)
				pixel_to_image(0x006633FF, val, x, draw_start);
			else
				pixel_to_image(0x00990000, val, x, draw_start);
		}
		draw_start++;
	}
}
Ejemplo n.º 8
0
inline static void	r_put_line(t_env *e, int i[10])
{
	i[5] = i[0] / 2;
	i[2] = 1;
	while (i[2] <= i[0])
	{
		i[6] += i[3];
		i[5] += i[1];
		if (i[5] >= i[0])
		{
			i[5] -= i[0];
			i[7] += i[4];
		}
		pixel_to_image(e, i[6], i[7], e->rcolor);
		i[2]++;
	}
}
Ejemplo n.º 9
0
void				render_to_image()
{
	unsigned int	x;
	unsigned int	y;

	y = 0;
	while (y < env->scene->view_height)
	{
		x = 0;
		while (x < env->scene->view_width)
		{
			pixel_to_image(x, y,
				light_diaphragm(&env->rendering[y * env->scene->view_width + x],
					env->scene->diaphragm));
			x++;
		}
		y++;
	}
	env->last_image_refresh = clock();
	mlx_put_image_to_window(env->mlx, env->win, env->img, 0, 0);
}
Ejemplo n.º 10
0
void	draw_fractale(t_env *env)
{
	t_pos	coords;

	coords.x = 0;
	coords.y = 0;
	while (coords.x < WW)
	{
		coords.y = 0;
		while (coords.y < WH)
		{
			env->func(env->fract, coords);
			pixel_to_image(env, coords, env->fract->color);
			coords.y++;
		}
		coords.x++;
	}
	mlx_put_image_to_window(env->mlx, env->win, env->img, 0, 0);
	mlx_string_put(env->mlx, env->win, 0, 0, 0xFF0000,
		ft_strjoin("Zoom: ", ft_itoa((env->fract->zoom * 10))));
	mlx_string_put(env->mlx, env->win, 0, 18, 0xFF0000,
		ft_strjoin("Itérations max: ", ft_itoa(env->fract->max_i)));
}