1
/* drawline using simple DDA */
2
void DrawLine(int x1, int y1, int x2, int y2)
3
{
4
int x, y, hm=1, vm=1, sw=0, t;
5
double dx, edx, dy, edy, eps;
6
x = x2-x1;
7
y = y2-y1;
8
if (x < 0)
9
{
10
x = -x;
11
hm = -1;
12
}
13
if (y < 0)
14
{
15
y = -y;
16
vm = -1;
17
}
18
if (x < y)
19
{
20
sw = 1;
21
t = x;
22
x = y;
23
y = t;
24
}
25
eps = 1./x;
26
edx = eps*x;
27
edy = eps*y;
28
29
dx = dy = 0.5;
30
if (sw == 0)
31
SetPixel((int)dx*hm+x1, (int)dy*vm+y1);
32
else
33
SetPixel((int)dy*hm+x1, (int)dx*vm+y1);
34
while (dx < x)
35
{
36
dx += edx;
37
dy += edy;
38
if (sw == 0)
39
SetPixel((int)dx*hm+x1, (int)dy*vm+y1);
40
else
41
SetPixel((int)dy*hm+x1, (int)dx*vm+y1);
42
}
43
}
44

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
