DDA画线算法

Posted 么么打123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DDA画线算法相关的知识,希望对你有一定的参考价值。

 1 #include<stdio.h>
 2 
 3 #include"graphics.h"
 4 
 5 #include<math.h>
 6 
 7 #include<stdlib.h>
 8 
 9  
10 
11 void DDALine(int x0, int y0, int x1, int y1);
12 
13  
14 
15 int main()
16 
17 {
18 
19     int gdriver = DETECT, gmode;
20 
21  
22 
23     int x0, y0, x1, y1;
24 
25     printf("please input the start point:\\n");
26 
27     scanf_s("%d%d", &x0, &y0);
28 
29     printf("please input the end point:\\n");
30 
31     scanf_s("%d%d", &x1, &y1);
32 
33  
34 
35     initgraph(&gdriver, &gmode, "");    //初始化图形界面
36 
37  
38 
39     DDALine(x0, y0, x1, y1);
40 
41  
42 
43     system("pause");    //暂停函数
44 
45  
46 
47     closegraph();   //关闭图形界面
48 
49 }
50 
51  
52 
53 void DDALine(int x0, int y0, int x1, int y1)
54 
55 {
56 
57     int dx=x1-x0, dy=y1-y0,k;
58 
59     double x = x0, y = y0, xIncre, yIncre, espl;
60 
61     espl = abs(dy);
62 
63  
64 
65     if (abs(dx) > abs(dy))
66 
67         espl = abs(dx);
68 
69  
70 
71     xIncre = 1.0*dx / espl;
72 
73     yIncre = 1.0*dy / espl;
74 
75  
76 
77     for (k = 0; k < espl;k++)
78 
79     {
80 
81         putpixel((int)x, (int)y, RED);
82 
83         x += xIncre;
84 
85         y += yIncre;
86 
87     }
88 
89 }

 

以上是关于DDA画线算法的主要内容,如果未能解决你的问题,请参考以下文章

两种画线算法(DDA&Bersenham)

计算机图形学输出图元_3_画线算法_2_DDA算法

计算机图形学输出图元_3_画线算法_2_DDA算法

计算机图形学DDA画线法+中点画线法+Bresenham画线法

Python使用DDA算法和中点Bresenham算法画直线

计算机图形学之扫描转换直线-DDA,Bresenham,中点画线算法