{
glClear(GL_COLOR_BUFFER_BIT);
selectFont(48, DEFAULT_CHARSET, \宋体\ glColor3f(1.0f, 0.0f, 0.0f); glRasterPos2f(-0.8f, 0.6f); drawCNString(\姓名: \
selectFont(64, DEFAULT_CHARSET, \宋体\ glColor3f(1.0f, 1.0f, 0.0f); glRasterPos2f(-0.8f, 0.1f);
drawCNString(\学号: \
glutSwapBuffers(); glFlush(); }
int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(800,600); glutInitWindowPosition(200,200);
glutCreateWindow(\输出学号姓名\ glutDisplayFunc(Display); glutMainLoop(); return 0; }
算法2:直线线型函数
#include \ void RenderScene() {
glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0f,0.0f,0.0f);
GLfloat sizes[2];//保存绘制点的尺寸范围 GLfloat step;//保存绘制点尺寸的步长 GLfloat curSize;//当前绘制的点的大小
glGetFloatv(GL_POINT_SIZE_RANGE,sizes);//获得点的尺寸范围
glGetFloatv(GL_POINT_SIZE_GRANULARITY,&step);//获得点尺寸的步长
//绘制不同大小的点
curSize = sizes[0]; for (int i=0; i < 25; i++) {
glPointSize(curSize);//设置点的大小 glBegin(GL_POINTS);
glVertex3f(25.0+i*8,200.0f,0.0f); glEnd();
curSize += step * 2; }
//绘制一条宽度为5的直线 glLineWidth(5);//设置线宽 glBegin(GL_LINES);
glVertex3f(20.0f,150.0f,0.0f); glVertex3f(220.0f,150.0f,0.0f); glVertex3f(200.0f,160.0f,0.0f); glVertex3f(200.0f,160.0f,0.0f); glEnd();
//在xy平面内绘制了两条直线(0,0,0)到(10,0,0)和(0,10,0)到(20,5,0). glBegin(GL_LINE_STRIP); glVertex3f(0.0f,0.0f,0.0f); glVertex3f(10.0f,10.0f,0.0f); glVertex3f(20.0f,5.0f,0.0f); glEnd();
//画了一个三角形
glBegin(GL_LINE_LOOP);
glVertex3f(100.0f,100.0f,0.0f); glVertex3f(150.0f,150.0f,0.0f); glVertex3f(200.0f,50.0f,0.0f); glEnd();
//绘制一条虚线
glEnable(GL_LINE_STIPPLE);
glLineStipple(1,0x00ff);//设置点划线模式 glBegin(GL_LINES);
glVertex3f(20.0f,120.0f,0.0f); glVertex3f(220.0f,120.0f,0.0f); glEnd();
//绘制一条宽度为3的点划线 glLineWidth(3);
glLineStipple(1,0xff0c); glBegin(GL_LINES);
glVertex3f(20.0f,80.0f,0.0f); glVertex3f(220.0f,80.0f,0.0f); glEnd();
//增加重复因子绘制的点划线 glLineStipple(4,0xFF0C); glBegin(GL_LINES);
glVertex3f(20.0f,40.0f,0.0f); glVertex3f(220.0f,40.0f,0.0f); glEnd();
glDisable(GL_LINE_STIPPLE);
glFlush(); }
void ChangeSize(GLsizei w,GLsizei h) {
if(h == 0) {
h = 1; }
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION); glLoadIdentity();
if (w <= h) {
glOrtho(0.0f,250.0f,0.0f,250.0f*h/w,1.0f,-1.0f); } else {
glOrtho(0.0f,250.0f*w/h,0.0f,250.0f,1.0f,-1.0f);
}
glMatrixMode(GL_MODELVIEW); glLoadIdentity(); }
void SetupRC() {
glClearColor(1.0f,1.0f,1.0f,1.0f); }
void main() {
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutCreateWindow(\点与线\
glutDisplayFunc(RenderScene); glutReshapeFunc(ChangeSize); SetupRC();
glutMainLoop(); }
相关推荐: