中点画线算法c++
时间: 2023-08-18 18:10:33 浏览: 129
中点画线算法
中点画线算法(Midpoint Line Algorithm)是一种用于计算两点之间直线的算法,其原理是从直线起点开始,每次沿着x轴或y轴方向移动一个像素,并根据与直线的距离来决定是否在y方向上移动一个像素。以下是使用C++实现的中点画线算法:
```c++
#include <iostream>
#include <graphics.h>
using namespace std;
void midPointLine(int x1, int y1, int x2, int y2) {
int dx = x2 - x1;
int dy = y2 - y1;
int d = 2 * dy - dx;
int x = x1, y = y1;
putpixel(x, y, WHITE);
while (x < x2) {
x++;
if (d < 0) {
d += 2 * dy;
} else {
d += 2 * (dy - dx);
y++;
}
putpixel(x, y, WHITE);
}
}
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
midPointLine(100, 100, 300, 300);
getch();
closegraph();
return 0;
}
```
其中,`midPointLine`函数接受四个参数,分别表示起点和终点的x、y坐标,使用`putpixel`函数在屏幕上绘制像素点。在主函数中,我们使用`initgraph`函数初始化图形库,然后调用`midPointLine`函数绘制一条从(100,100)到(300,300)的直线,最后使用`getch`函数等待用户输入,然后关闭图形库。
阅读全文