openGL初学,为什么直线显示不出来?
void lineBres(int x0,int y0,int xEnd,int yEnd,int m)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 0.0, 1.0);
//glBegin(GL_POLYGON);
int dx=abs(xEnd-x0), dy=abs(yEnd-y0);
int x, y;
glVertex2i(x0,y0);//选择起始点位置
if (dx>dy)
{
m = (double)dy / (double)dx;
y = y0 + 0.5;
dx = (xEnd > x0) ? 1 : -1;
m *= dx;
while (x0 != xEnd) {
x0 += dx;
y += m;
glVertex2i(x,y);
}
}
else if (dy != 0) {
m = (double)dx / (double)dy;
x = x0 + 0.5;
dy = (yEnd > y0) ? 1 : -1;
m *= dy;
while (y0 != yEnd) {
y0 += dy;
x += m;
glVertex2i(x,y);
}
//glEnd();
}
}
void myMouseFunc (int button, int state, int x, int y)
{
if(state==GLUT_DOWN && button==GLUT_LEFT_BUTTON)
{
printf("aa");
X=x;
Y=y;
printf("%d",X);
printf("%d",Y);
}
else if(state==GLUT_UP && button==GLUT_LEFT_BUTTON)
{
printf("bb");
xEND=x;
yEND=y;
printf("%d",xEND);
printf("%d",yEND);
//return(X,Y,xEND,yEND);
}
}
void lineSegment(void)
{
glClear(GL_COLOR_BUFFER_BIT);
//myMouseFunc(0,0,0,0);
glColor3f(1.0,1.0,0.0);
lineBres(X,Y,xEND,yEND,m);
glFlush();
}
void main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,400);
glutInitWindowPosition(300,300);
glutCreateWindow("Hello World");
init();
glutMouseFunc(myMouseFunc);
glutDisplayFunc(lineSegment);
glutMainLoop();
}
相关推荐
opengl实现直线裁剪
下面的程序段在windows控制台下实现按住鼠标右键绘制一个矩形,按住鼠标左键,绘制直线段,并利用Cohen-Sutherland算法实现直线裁剪。
基于OpenGL与Bresenham算法实现圆与直线绘制的C++项目实战
OpenGL(Open Graphics Library)是一个跨平台、基于C语言的图形编程接口,提供了对2D和3D图形渲染的底层支持。自1992年由SGI(Silicon Graphics)公司推出以来,OpenGL不断演进,经历了从固定功能管线到可编程管线的转变。随着版本的迭代(如OpenGL 1.x至OpenGL 4.x以及OpenGL ES、WebGL的分支),其灵活性和性能得到了显著提升,成为图形开发领域的标准之一。
openGL 画直线 代码
基于openGL的画直线的c语言代码
Qt+OpenGL+VS2010写的输入点坐标,显示点和直线
新建一个空的Qt工程 把所给的文件添加进去即可 界面有两个部分 视图部分 点坐标输入部分 由于用的是QSpinBox类的 editingFinished 信号 所以每次输入顶点的时候不管原先那个点的值有没有变化 都要让光标在那个框中过一下 或者按个enter也行 总之要在那个框中过一下 ">新建一个空的Qt工程 把所给的文件添加进去即可 界面有两个部分 视图部分 点坐标输入部分 由于用的是QSpinBox类的 editingFinished 信号 所以每次输入顶点的时候不管原先那个点的值有没有变化 都要让光标在那个框中过 [更多]
OpenGL中点Bresenham绘制直线算法
主要为大家详细介绍了OpenGL中点Bresenham绘制直线算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


