首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bresenham直线算法编译错误?

bresenham直线算法编译错误?
EN

Stack Overflow用户
提问于 2016-09-09 13:24:01
回答 1查看 99关注 0票数 0
代码语言:javascript
复制
#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 8C:\Users\Hewlett\Documents\bresenham1.c错误'y0‘重新声明为不同类型的符号,414C:\User\Hewlett\Documents\bresenham1.c错误'yn’重新声明为不同类型的符号。

有人能说出为什么y0 &yn会被重新声明为不同的符号吗?

EN

回答 1

Stack Overflow用户

发布于 2016-09-09 14:05:32

为什么它要显示y0 &yn被重新声明为不同类型的符号

因为你是:

y0()、y1()和yn()函数将分别计算第二类阶0、1和n的x的贝塞尔函数

切换到不同的名称,否则不要使用#include <math.h>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39412610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档