第一范文网 - 专业文章范例文档资料分享平台

OpenGL程序,输出 学号、姓名、照片等信息 直线、线型、字体程序

来源:用户分享 时间:2025/8/4 23:43:32 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

{

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(); }

OpenGL程序,输出 学号、姓名、照片等信息 直线、线型、字体程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4yn920ndjl4ncj33rqm3_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top