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); }
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++; } }
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); }
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++; } }
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++; } }
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)); } } }
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++; } }
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]++; } }
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); }
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))); }