布雷森汉姆线算法的编译错误? [英] Compilation error with bresenham line algorithm?
问题描述
#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
int x0,y0,xn,yn;
void bresenham(void)
{
int dx,dy,m,pk,xk,yk,k;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0,0,0);
setPixel(x0,y0);
dx=xn-x0;
dy=yn-y0;
pk=2*dy-dx;
m=dy/dx;
xk=x0;
yk=y0;
if(m>0 && m<1)
{
for(k=0;k<dx-1;k++)
{
if(pk<0)
{
xk++;
pk=pk+2*dy;
}
else
{
xk++;
yk++;
pk=pk+2*dy-2*dx;
}
setPixel(xk,yk);
}
}
glFlush();
}
int main (int argc,char **argv)
{
printf("enter starting points");
scanf("%d",&x0);
scanf("%d",&y0);
printf("enter endpoints");
scanf("%d",&xn);
scanf("%d",&yn);
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowPosition(50,25);
glutInitWindowSize(500,250);
glutCreateWindow("Bresenham Line");
init();
glutDisplayFunc(bresenham);
glutMainLoop();
return 0;
}
void init(void)
{
glClearColor(1.0,1.0,1.0,0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0,400.0,0.0,400.0);
}
void setPixel(GLint x,GLint y)
{
glColor3f(255,255,255);
glBegin(GL_POINTS);
glVertex2f(x,y);
glEnd();
}
错误是:
4 8 C:\ Users \ Hewlett \ Documents \ bresenham1.c [错误]'y0'重新声明为 不同种类的符号 ,4 14 C:\ Users \ Hewlett \ Documents \ bresenham1.c [错误]'yn'重新声明 作为不同种类的符号.
4 8 C:\Users\Hewlett\Documents\bresenham1.c [Error] 'y0' redeclared as different kind of symbol ,4 14 C:\Users\Hewlett\Documents\bresenham1.c [Error] 'yn' redeclared as different kind of symbol .
有人能说出为什么显示y0& yn的原因吗?
Can anyone tell why it is showing y0 &yn are redeclared as different kind of symbol
推荐答案
为什么显示y0& yn被重新声明为另一种符号
why it is showing y0 &yn are redeclared as different kind of symbol
因为您是:
y0(),y1()和yn()函数应计算贝塞尔函数第二种分别为0、1和n的x的值.
The y0(), y1(), and yn() functions shall compute Bessel functions of x of the second kind of orders 0, 1, and n, respectively.
切换到其他名称,或者不要#include <math.h>
.
Switch to different names or don't #include <math.h>
.
这篇关于布雷森汉姆线算法的编译错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!