Bresenham线编码不画线
Bresenham line coding not drawing a line
我尝试使用以下代码 Bresenham line drawing 但是通过 OpenGL GLUT 项目。
我已成功 运行 代码但没有结果。
我正在尝试绘制 p1(5,8) 和 P2(9,11) 两点之间的点。
但是我的 for 循环似乎有问题。
int x1,x2,y1,y2;
void drawline(int x0, int y0, int x1, int y1)
{
int dx, dy, p;
int x,y;
dx=x1-x0;
dy=y1-y0;
//x=x0;
y=y0;
p=2*dy-dx;
for(x=x0; x<=x1; x++)
{
if(p>=0)
{
y=y+1;
p=p+2*dy-2*dx;
glBegin(GL_POINTS);
glVertex2i(x,y);
glPointSize(45);
glEnd();
}
else
{
p=p+2*dy;
glBegin(GL_POINTS);
glVertex2i(x,y);
glPointSize(45);
glEnd();
y=y0;
}
}
void myDisplay()
{
drawline(x1, x2, y1, y2);
glFlush();
}
int main(int argc, char** argv) {
printf("Enter the value of x1 : ");
scanf("%f",&x1);
printf("Enter the value of y1 : ");
scanf("%f",&y1);
printf("Enter the value of x2 : ");
scanf("%f",&x2);
printf("Enter the value of y2 : ");
scanf("%f",&y2);
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100,100);
glutCreateWindow ("bresenham Line Algo");
// myInit();
glutDisplayFunc(myDisplay);
glutMainLoop();
return 0;
}
我有两个我没有注意到的全局变量。谢谢大家的支持。
我尝试使用以下代码 Bresenham line drawing 但是通过 OpenGL GLUT 项目。 我已成功 运行 代码但没有结果。 我正在尝试绘制 p1(5,8) 和 P2(9,11) 两点之间的点。 但是我的 for 循环似乎有问题。
int x1,x2,y1,y2;
void drawline(int x0, int y0, int x1, int y1)
{
int dx, dy, p;
int x,y;
dx=x1-x0;
dy=y1-y0;
//x=x0;
y=y0;
p=2*dy-dx;
for(x=x0; x<=x1; x++)
{
if(p>=0)
{
y=y+1;
p=p+2*dy-2*dx;
glBegin(GL_POINTS);
glVertex2i(x,y);
glPointSize(45);
glEnd();
}
else
{
p=p+2*dy;
glBegin(GL_POINTS);
glVertex2i(x,y);
glPointSize(45);
glEnd();
y=y0;
}
}
void myDisplay()
{
drawline(x1, x2, y1, y2);
glFlush();
}
int main(int argc, char** argv) {
printf("Enter the value of x1 : ");
scanf("%f",&x1);
printf("Enter the value of y1 : ");
scanf("%f",&y1);
printf("Enter the value of x2 : ");
scanf("%f",&x2);
printf("Enter the value of y2 : ");
scanf("%f",&y2);
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100,100);
glutCreateWindow ("bresenham Line Algo");
// myInit();
glutDisplayFunc(myDisplay);
glutMainLoop();
return 0;
}
我有两个我没有注意到的全局变量。谢谢大家的支持。