void medusa(t_struct *s) { s->image_x = HGT; s->image_y = WDT; s->x = 0; while (s->x < s->image_x) { s->y = 0; while (s->y < s->image_y) { s->c_r = s->x / s->zoom + s->x1; s->c_i = s->y / s->zoom + s->y1; s->z_r = 0; s->z_i = 0; s->i = 0; while (s->z_r * s->z_r + s->z_i * s->z_i < 4 && s->i < s->iter_max) { s->tmp = s->z_r; s->z_r = fabs(s->z_r * s->z_r - s->z_i * s->z_i) + s->c_r; s->z_i = 3 * s->z_i * s->tmp + s->c_i; s->i++; } put_pixel_to_image(s); s->y++; } s->x++; } }
void draw_column(t_env *e, int x) { int y; y = 0; get_color(e, y); while (y < e->drstart) { put_pixel_to_image(e, &e->color, x, y); y++; } get_color(e, y); while (y < e->drend) { put_pixel_to_image(e, &e->color, x, y); y++; } get_color(e, y); while (y <= WIN_HEIGHT) { put_pixel_to_image(e, &e->color, x, y); y++; } }
void print_trace(t_point p1, t_point p2, t_info *i) { i->dx = abs((p2.x - p1.x)); i->sx = p1.x < p2.x ? 1 : -1; i->dy = abs((p2.y - p1.y)); i->sy = p1.y < p2.y ? 1 : -1; i->err = (i->dx > i->dy ? i->dx : -i->dy) / 2; while (!(p1.x == p2.x && p1.y == p2.y)) { put_pixel_to_image(p1.x, p1.y, i); i->err2 = i->err; if (i->err2 > -i->dx) { i->err -= i->dy; p1.x += i->sx; } if (i->err2 < i->dy) { i->err += i->dx; p1.y += i->sy; } } }