繁体   English   中英

布雷森汉姆线算法的编译错误?

[英]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'重新声明为不同的符号一种符号。

有人能说出为什么显示y0&yn的原因吗?

为什么显示y0&yn的原因被重新声明为另一种符号

因为您是:

y0(),y1()和yn()函数应分别计算第二类0、1和n的x的Bessel函数

切换到其他名称或不#include <math.h>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM