这是第一个正八分圆中一条线的Bresenham算法。代码几乎来自http://www.cs.helsinki.fi/group/goa/mallinnus/lines/bresenh.html。但它不起作用,turbo c ++说第4行有一个错误,“)EXPECTED”。我真的不知道如何解决它。如果有任何帮助,我会很高兴。
#include <iostream.h>
#include <graphics.h>
#include <conio.h>
void LINE(int x1, int y1, int x2, int y2)
{
int dx = x2 - x1;
int dy = y2 - y1;
int y = y1;
int e = 0;
for (int x = x1; x <= x2; x++)
{
putpixel(x, y, color);
e += dy;
}
}
int main()
{
int x1, x2, y1, y2, color, gd = DETECT, gm;
initgraph(&gd, &gm, "..\\bgi");
cout << "\n Enter Start Point:";
cin >> x1 >> y1;
cout << "Enter End Point:";
cin >> x2 >> y2;
cout << "Enter your Favorite Color:";
cin >> color;
line(x1, y1, x2, y2, color);
getch();
closegraph();
return 0;
}
答案 0 :(得分:3)
void Bresenham(int x1,int y1, int x2, int y2, colour)
^ you forgot the type here
应该是
void Bresenham(int x1,int y1, int x2, int y2, int colour)
(但你甚至没有在你的代码中使用这个功能)
您还应该使用int main()
而不是void main()
int main()
{
// your code
return 0;
}
你这里也有错误
cout>>"Enter your Favorite Colour:";
^
here
应该是
cout << "Enter your Favorite Colour:";
和
cin<<colour;
应该是
cin >> colour;
您的通话中还有一个额外的参数line()
。从那里删除colour
。它应该是
line( x1 , y1 , x2 , y2 );
如果要设置颜色,请使用
setcolor( /* color code */ );
这些是颜色代码
0 BLACK
1 BLUE
2 GREEN
3 CYAN
4 RED
5 MAGENTA
6 BROWN
7 LIGHTGRAY
8 DARKGRAY
9 LIGHTBLUE
10 LIGHTGREEN
11 LIGHTCYAN
12 LIGHTRED
13 LIGHTMAGENTA
14 YELLOW
15 WHITE
示例,要获得RED,请使用
setcolor( 4 );