本文共 1138 字,大约阅读时间需要 3 分钟。
说明
渲染线段的时候指定使用GL_LINES,而不是GL_LINE,线段的宽度跟点的尺寸一样,都有一个最大的限制,如果要渲染一条100像素宽的线段只能够采用渲染填充矩形的方式
代码
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
//
void myInit()
{
glClearColor(1.0,1.0,1.0,0.0);
glLineWidth(3.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,640,0.0,480);
}
/
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.f, 0.f);
glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glLineWidth(1);
glBegin(GL_LINES);
glVertex2d(200, 20);
glVertex2d(100, 300);
glEnd();
glFlush();
}
///
void main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(640,480);
glutInitWindowPosition(100,150);
glutCreateWindow("my second attempt");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
}
注意:
glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
指定渲染反走样的线段,实现一条平滑的线段
本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1721023,如需转载请自行联系原作者