【发布时间】:2013-09-12 10:13:46
【问题描述】:
我正在尝试使用 Bresenham 的算法在 C 语言中画一条线。我在 windows 7 的 dosbox 中使用 turbo C++ 来实现此代码。编译时我没有收到任何错误,但是当我运行代码时获得2个坐标后程序终止。请帮助..
编译消息如下..
目录路径如下
我的代码..
# include <stdio.h>
# include <conio.h>
# include <graphics.h>
void main()
{
int dx,dy,x,y,p,x1,y1,x2,y2;
int gd,gm;
clrscr();
printf("\n\n\tEnter the co-ordinates of first point : ");
scanf("%d %d",&x1,&y1);
printf("\n\n\tEnter the co-ordinates of second point : ");
scanf("%d %d",&x2,&y2);
dx = (x2 - x1);
dy = (y2 - y1);
p = 2 * (dy) - (dx);
x = x1;
y = y1;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"e:\\tc\\bgi");
putpixel(x,y,WHITE);
while(x <= x2)
{
if(p < 0)
{
x=x+1;
y=y;
p = p + 2 * (dy);
}
else
{
x=x+1;
y=y+1;
p = p + 2 * (dy - dx);
}
putpixel(x,y,WHITE);
}
getch();
closegraph();
}
【问题讨论】:
-
除非您在嵌入式系统上工作,否则
void main()是错误的,错误的,错误的。int main (void),看在上帝的份上! -
能否请您具体说明错误和行号。
-
我在编译或运行时没有收到这样的错误消息。只有当我输入第一个坐标的值时,程序会突然终止......
-
使用
Alt + F5查看是否生成了任何错误消息,但由于控制台窗口关闭,您无法看到它。
标签: c vector-graphics turbo-c++ bresenham dosbox