-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathline2.c
104 lines (94 loc) · 2.22 KB
/
line2.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* line2.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: ssong <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2018/02/15 13:19:33 by ssong #+# #+# */
/* Updated: 2018/02/17 10:54:25 by ssong ### ########.fr */
/* */
/* ************************************************************************** */
#include "fdf.h"
t_bundle *drawline(t_bundle *bundle)
{
int dy_sum;
bundle->x[0]++;
dy_sum = bundle->dy;
while (bundle->x[0] < bundle->x[1])
{
dy_sum += bundle->dy;
if (dy_sum >= bundle->dx)
{
bundle->y[0]++;
dy_sum -= bundle->dx;
}
put_pixel(bundle);
bundle->x[0]++;
}
return (bundle);
}
t_bundle *drawline1(t_bundle *bundle)
{
int dx_sum;
dx_sum = bundle->dx;
bundle->y[0]++;
while (bundle->y[0] < bundle->y[1])
{
dx_sum += bundle->dx;
if (dx_sum > bundle->dy)
{
bundle->x[0]++;
dx_sum -= bundle->dy;
}
put_pixel(bundle);
bundle->y[0]++;
}
return (bundle);
}
t_bundle *drawline2(t_bundle *bundle)
{
int dy_sum;
dy_sum = bundle->dy;
bundle->x[0]++;
while (bundle->x[0] < bundle->x[1])
{
dy_sum += bundle->dy;
if (-dy_sum >= bundle->dx)
{
bundle->y[0]--;
dy_sum += bundle->dx;
}
put_pixel(bundle);
bundle->x[0]++;
}
return (bundle);
}
t_bundle *drawline3(t_bundle *bundle)
{
int dx_sum;
bundle->y[0]--;
dx_sum = bundle->dx;
while (bundle->y[0] > bundle->y[1])
{
dx_sum += bundle->dx;
if (dx_sum > -(bundle->dy))
{
bundle->x[0]++;
dx_sum += bundle->dy;
}
put_pixel(bundle);
bundle->y[0]--;
}
return (bundle);
}
t_bundle *drawright(t_bundle *bundle)
{
bundle->x[0]++;
while (bundle->x[0] < bundle->x[1])
{
put_pixel(bundle);
bundle->x[0]++;
}
return (bundle);
}