#include <graphics.h>
#include <conio.h>
#include <iostream.h>
// 使用中点算法画任意斜率的直线
void MidpointLine(int x0, int y0, int x1, int y1, int color)
{
int a,b,delta1,delta2,d,x,y;
a=y0-y1;
b=x1-x0;
d=2*a+b;
delta1=2*a;
delta2=2*(a+b);
x=x0;
y=y0;
putpixel(x,y,color);
while(x<x1)
{
if(d<0)
{
x++;
y++;
d+=delta2;
}
else
{
x++;
d+=delta1;
}
putpixel(x,y,color);
}/*while*/
}/*MidpointLine*/
// 主函数
void main()
{
// 输入起点和终点
int x1,y1,x2,y2;
cout<<"请输入起点:";
cin>>x1>>y1;
cout<<"请输入终点:";
cin>>x2>>y2;
x1=x1+250;
y1=250-y1;
x2=x2+250;
y2=250-y2;
//初始化屏幕大小
initgraph(500, 500);
// 测试画线
Line_Midpoint(0, 250, 500, 250, RED);//x轴
Line_Midpoint(250, 0, 250, 500, RED);//y轴
MidpointLine(150, 100, 300, 160, GREEN);
// 按任意键退出
getch();
closegraph();
}
效果截图