From 50d70eb260213e28ffab7b7e04c6dfd72ed6edec Mon Sep 17 00:00:00 2001 From: Gregory Date: Sun, 19 Feb 2017 01:26:21 +0200 Subject: [PATCH] new file lone.c --- CMakeLists.txt | 2 +- Makefile | 3 ++- src/line.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++ src/main.c | 73 ++------------------------------------------------ 4 files changed, 73 insertions(+), 73 deletions(-) create mode 100644 src/line.c diff --git a/CMakeLists.txt b/CMakeLists.txt index fb4b5db..ea92a2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ include_directories(inc libft/includes minilibx) # headers link_directories(libft minilibx) # libraries set(SOURCE_FILES - src/main.c) # sources + src/main.c src/line.c) # sources add_executable(fdf ${SOURCE_FILES}) # compilation diff --git a/Makefile b/Makefile index 66b5ad2..aeee9b8 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,8 @@ SRCDIR = ./src/ OBJDIR = ./obj/ -SRC_FILES = main.c +SRC_FILES = main.c \ + line.c OBJ_FILES = $(SRC_FILES:.c=.o) diff --git a/src/line.c b/src/line.c new file mode 100644 index 0000000..221b269 --- /dev/null +++ b/src/line.c @@ -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); +} + diff --git a/src/main.c b/src/main.c index 8f2bbad..c89e31f 100644 --- a/src/main.c +++ b/src/main.c @@ -7,75 +7,6 @@ #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) { t_point p1; @@ -142,7 +73,6 @@ void circle(t_mlx m) } } - int main(int argc, char **argv) { t_mlx m; @@ -158,9 +88,10 @@ int main(int argc, char **argv) ft_putstr(line); ft_putstr("\n"); } + + m.mlx = mlx_init(); m.win = mlx_new_window(m.mlx, 500, 500, "fdf"); - //line(&p1, &p2, &m); test_line(m); circle(m); mlx_loop(m.mlx);