new file lone.c
This commit is contained in:
parent
983a4f232c
commit
50d70eb260
4 changed files with 73 additions and 73 deletions
|
@ -7,7 +7,7 @@ include_directories(inc libft/includes minilibx) # headers
|
||||||
link_directories(libft minilibx) # libraries
|
link_directories(libft minilibx) # libraries
|
||||||
|
|
||||||
set(SOURCE_FILES
|
set(SOURCE_FILES
|
||||||
src/main.c) # sources
|
src/main.c src/line.c) # sources
|
||||||
|
|
||||||
add_executable(fdf ${SOURCE_FILES}) # compilation
|
add_executable(fdf ${SOURCE_FILES}) # compilation
|
||||||
|
|
||||||
|
|
3
Makefile
3
Makefile
|
@ -18,7 +18,8 @@ SRCDIR = ./src/
|
||||||
OBJDIR = ./obj/
|
OBJDIR = ./obj/
|
||||||
|
|
||||||
|
|
||||||
SRC_FILES = main.c
|
SRC_FILES = main.c \
|
||||||
|
line.c
|
||||||
|
|
||||||
OBJ_FILES = $(SRC_FILES:.c=.o)
|
OBJ_FILES = $(SRC_FILES:.c=.o)
|
||||||
|
|
||||||
|
|
68
src/line.c
Normal file
68
src/line.c
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
|
||||||
|
#include "fdf.h"
|
||||||
|
|
||||||
|
static void swap_x_y(t_point *p1, t_point *p2)
|
||||||
|
{
|
||||||
|
int temp;
|
||||||
|
|
||||||
|
temp = p1->x;
|
||||||
|
p1->x = p1->y;
|
||||||
|
p1->y = temp;
|
||||||
|
temp = p2->x;
|
||||||
|
p2->x = p2->y;
|
||||||
|
p2->y = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void swap_points(t_point *p1, t_point *p2)
|
||||||
|
{
|
||||||
|
t_point temp;
|
||||||
|
|
||||||
|
temp = *p1;
|
||||||
|
*p1 = *p2;
|
||||||
|
*p2 = temp;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void draw_line(t_point *p1, t_point *p2, t_mlx *m, t_swap *s)
|
||||||
|
{
|
||||||
|
int dx = abs(p2->x - p1->x);
|
||||||
|
int dy = abs(p2->y - p1->y);
|
||||||
|
int derr = 2 * dy - dx;
|
||||||
|
while (p1->x < p2->x)
|
||||||
|
{
|
||||||
|
if (s->swap_coord)
|
||||||
|
mlx_pixel_put(m->mlx, m->win, p1->y, p1->x, p1->color);
|
||||||
|
else
|
||||||
|
mlx_pixel_put(m->mlx, m->win, p1->x, p1->y, p1->color);
|
||||||
|
if (derr > 0)
|
||||||
|
{
|
||||||
|
p1->y += s->swap_x;
|
||||||
|
derr -= dx;
|
||||||
|
}
|
||||||
|
(p1->x)++;
|
||||||
|
derr += dy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void line(t_point *p1, t_point *p2, t_mlx *m)
|
||||||
|
{
|
||||||
|
int dx;
|
||||||
|
int dy;
|
||||||
|
t_swap swap;
|
||||||
|
|
||||||
|
dx = abs(p2->x - p1->x);
|
||||||
|
dy = abs(p2->y - p1->y);
|
||||||
|
swap.swap_coord = 0;
|
||||||
|
swap.swap_x = 1;
|
||||||
|
if (dy > dx)
|
||||||
|
{
|
||||||
|
swap_x_y(p1, p2);
|
||||||
|
swap.swap_coord= 1;
|
||||||
|
}
|
||||||
|
if (p1->x > p2->x)
|
||||||
|
swap_points(p1, p2);
|
||||||
|
if (p1->y > p2->y)
|
||||||
|
swap.swap_x = -1;
|
||||||
|
draw_line(p1, p2, m, &swap);
|
||||||
|
}
|
||||||
|
|
73
src/main.c
73
src/main.c
|
@ -7,75 +7,6 @@
|
||||||
|
|
||||||
#include "fdf.h"
|
#include "fdf.h"
|
||||||
|
|
||||||
void swap_x_y(t_point *p1, t_point *p2)
|
|
||||||
{
|
|
||||||
int temp;
|
|
||||||
|
|
||||||
temp = p1->x;
|
|
||||||
p1->x = p1->y;
|
|
||||||
p1->y = temp;
|
|
||||||
temp = p2->x;
|
|
||||||
p2->x = p2->y;
|
|
||||||
p2->y = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
void swap_points(t_point *p1, t_point *p2)
|
|
||||||
{
|
|
||||||
t_point temp;
|
|
||||||
|
|
||||||
temp = *p1;
|
|
||||||
*p1 = *p2;
|
|
||||||
*p2 = temp;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void draw_line(t_point *p1, t_point *p2, t_mlx *m, t_swap *s)
|
|
||||||
{
|
|
||||||
int dx = abs(p2->x - p1->x);
|
|
||||||
int dy = abs(p2->y - p1->y);
|
|
||||||
int derr = 2 * dy - dx;
|
|
||||||
while (p1->x < p2->x)
|
|
||||||
{
|
|
||||||
if (s->swap_coord)
|
|
||||||
mlx_pixel_put(m->mlx, m->win, p1->y, p1->x, p1->color);
|
|
||||||
else
|
|
||||||
mlx_pixel_put(m->mlx, m->win, p1->x, p1->y, p1->color);
|
|
||||||
if (derr > 0)
|
|
||||||
{
|
|
||||||
p1->y += s->swap_x;
|
|
||||||
derr -= dx;
|
|
||||||
}
|
|
||||||
(p1->x)++;
|
|
||||||
derr += dy;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void line(t_point *p1, t_point *p2, t_mlx *m)
|
|
||||||
{
|
|
||||||
int dx;
|
|
||||||
int dy;
|
|
||||||
t_swap swap;
|
|
||||||
|
|
||||||
dx = abs(p2->x - p1->x);
|
|
||||||
dy = abs(p2->y - p1->y);
|
|
||||||
swap.swap_coord = 0;
|
|
||||||
swap.swap_x = 1;
|
|
||||||
if (dy > dx)
|
|
||||||
{
|
|
||||||
swap_x_y(p1, p2);
|
|
||||||
swap.swap_coord= 1;
|
|
||||||
}
|
|
||||||
if (p1->x > p2->x)
|
|
||||||
{
|
|
||||||
swap_points(p1, p2);
|
|
||||||
}
|
|
||||||
if (p1->y > p2->y)
|
|
||||||
{
|
|
||||||
swap.swap_x = -1;
|
|
||||||
}
|
|
||||||
draw_line(p1, p2, m, &swap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void test_line(t_mlx mlx)
|
void test_line(t_mlx mlx)
|
||||||
{
|
{
|
||||||
t_point p1;
|
t_point p1;
|
||||||
|
@ -142,7 +73,6 @@ void circle(t_mlx m)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
t_mlx m;
|
t_mlx m;
|
||||||
|
@ -158,9 +88,10 @@ int main(int argc, char **argv)
|
||||||
ft_putstr(line);
|
ft_putstr(line);
|
||||||
ft_putstr("\n");
|
ft_putstr("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
m.mlx = mlx_init();
|
m.mlx = mlx_init();
|
||||||
m.win = mlx_new_window(m.mlx, 500, 500, "fdf");
|
m.win = mlx_new_window(m.mlx, 500, 500, "fdf");
|
||||||
//line(&p1, &p2, &m);
|
|
||||||
test_line(m);
|
test_line(m);
|
||||||
circle(m);
|
circle(m);
|
||||||
mlx_loop(m.mlx);
|
mlx_loop(m.mlx);
|
||||||
|
|
Loading…
Add table
Reference in a new issue