位置: 编程技术 - 正文

利用OpenGL在窗口上绘制出三维坐标(启用opengl的文档窗口)

编辑:rootadmin

推荐整理分享利用OpenGL在窗口上绘制出三维坐标(启用opengl的文档窗口),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl示例,opengl示例,opengl的窗口,opengl怎么运行,opengl使用教程,opengl示例,opengl设置窗口大小,opengl的窗口,内容如对您有帮助,希望把文章链接给更多的朋友!

/*今天刚开通CSDN博客,以此记录我的编程学习之旅*/

按时间顺序来讲,这是计算机图形学课程的第一个编程实践,大概是在一年前吧。这个程序是在nehe OpenGL框架下完成的,现在回头来看,这是一个很基础、很简单的小程序,但可以说是我编写(改编)的第一个图形窗口程序。

下面是程序绘制三维坐标的主体代码:

int DrawGLScene(GLvoid) // 这个自定义函数用于完成窗口场景绘制{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// 清屏及深度缓存glLoadIdentity();// 重置模型观察矩阵glTranslatef(-1.0f,-1.0f,-6.0f);//平移绘制起点(向左平移1个单位,向下平移1个单位,朝垂直屏幕向内平移6个单位)glColor3f(1.0f,0.0f,0.0f);// 设置画笔颜色(RGB:此处为红色)

// 绘制x、y、z轴线段glBegin(GL_LINES);glVertex3f( 0.0f, 0.0f, 0.0f );//绘制线段的起点,这里为相对坐标,即相将glTranslatef移动后的点作为原点glVertex3f( 3.0f,0.0f, 0.0f );//确定第一条线段的终点(3,0,0) glVertex3f( 0.0f,0.0f, 0.0f );//确定第二条线段的起点(0,0,0)glVertex3f( 0.0f,3.0f, 0.0f ); //确定第二条线段的终点(0,3,0)glVertex3f( 0.0f,0.0f, 0.0f );glVertex3f( 0.0f,0.0f, 3.0f ); glEnd();

//平移起点并重新设置画笔颜色用于区分绘制的物体glTranslatef(-1.0f,-1.0f,-6.0f); glColor3f(0.5f,0.5f,1.0f);

//绘制一个矩形 glBegin(GL_QUADS);glVertex3f(0.0f, 0.0f, 0.0f);// Top LeftglVertex3f(0.0f, 3.0f, 0.0f);// Top RightglVertex3f(0.0f,3.0f, 3.0f);// Bottom RightglVertex3f(0.0f,0.0f, 3.0f);// Bottom LeftglEnd();

//更改画笔颜色,并绘制另外一个矩形 glColor3f(0.0f,0.0f,1.0f);// Set The Color To Blue One Time OnlyglBegin(GL_QUADS);// Draw A QuadglVertex3f(0.0f, 0.0f, 0.0f);// Top LeftglVertex3f(3.0f, 0.0f, 0.0f);// Top RightglVertex3f(3.0f,0.0f, 3.0f);// Bottom RightglVertex3f(0.0f,0.0f, 3.0f);// Bottom LeftglEnd();

//在窗口上显示“X”表示X轴glTranslatef(4.0f,0.0f,0.0f);glColor3f(0.0f,1.0f,0.0f);glBegin(GL_LINES);glVertex3f( 0.0f, 0.0f, 0.0f);glVertex3f(1.0f,-1.0f, 0.0f);glVertex3f( 1.0f,0.0f, 0.0f);glVertex3f( 0.0f,-1.0f, 0.0f); glEnd();

//在窗口上显示“Y”表示Y轴glTranslatef(-5.0f,4.0f,0.0f);glColor3f(0.0f,0.5f,0.5f);glBegin(GL_LINES);glVertex3f( 0.0f, 0.0f, 0.0f);glVertex3f(0.0f,-1.0f, 0.0f);glVertex3f( 0.0f, 0.0f, 0.0f);glVertex3f( -0.5f,0.5f, 0.0f);glVertex3f( 0.0f, 0.0f, 0.0f);glVertex3f( 0.5f,0.5f, 0.0f); glEnd();

//在窗口上显示“Z”表示Z轴glTranslatef(0.0f,-4.0f,4.0f);glColor3f(0.5f,0.0f,0.5f);glBegin(GL_LINES);glVertex3f( 0.0f, 0.0f, 0.0f);glVertex3f(0.5f,0.0f, 0.0f); glVertex3f(0.5f,0.0f, 0.0f); glVertex3f( 0.0f,-0.5f, 0.0f);glVertex3f( 0.0f,-0.5f, 0.0f);glVertex3f( 0.5f,-0.5f, 0.0f); glEnd(); return TRUE; }

附上运行效果截图:

借此,在这里总结一下OpenGL生成点、线的函数实现吧:

(1)用OpenGL生成点(点的绘制)

glPointSize(2.0f);//设置点的大小,这里设置为两个像素

glBegin(GL_POINTS);

glVertex2f(0.0,3.0);//绘制二维点

glVertex3f(0.0f,0.0f,0,3f);//绘制三维点

glEnd();

(2)绘制直线

glLineWidth(2.0f);//设置直线的宽度为2个像素

利用OpenGL在窗口上绘制出三维坐标(启用opengl的文档窗口)

glBegin(GL_LINES);

glVertex2f(0.0f,3.0f);//第一条直线的起点

glVertex2f(0.0f,0.0f);//第一条直线的终点

glEnd();

//可以利用glEnable(GL_LINE_STIPPLE); glLineStipple(1,0xFF);……glDisable(GL_LINE_STIPPLE);绘制自定义线形(此处为点划线)

(3)绘制折线

glBegin(GL_LINE_STRIP);

glVertex2f(-0.9f,1.0f);

glVertex2f(0.0f,0.0f);

glVertex2f(0.9f,0.5f);

glEnd();

//在glBegin()和glEnd()之间是折线的顶点,由这些顶点以此相连成折线,不会自动闭合

浅析OpenGL 浅析OpenGL一.OpenGL基本介绍(参考维基百科)OpenGL是OpenGraphicsLibrary的缩写,中文名叫开放图形库。它是定义了一个跨编程语言,跨平台的应用程序接口

Eclipse下的SWT的OpenGL开发(配置、实例及源码)正弦波 前面两个博文都是用java的awt开发jogl,但是现在想用swt开发,配置就不行了;查了很多,说要eclipse安装OpenGL插件才可以,也下载了,解压到了plugin文件

OpenGL学习日记-.3.5——Hello glsl(着色器) 过年前忍不住买了本新版的OpenGL编程指南,主要的目的还是为了系统的学习着色器编程,另外就是接触新版的OpenGL技术和思想。看了几页,就过年了QAQ.

标签: 启用opengl的文档窗口

本文链接地址:https://www.jiuchutong.com/biancheng/373100.html 转载请保留说明!

上一篇:opengl使用现在比较常用的方法来绘制简单几何图元(opengl示例)

下一篇:浅析OpenGL(浅析学校德育的个体智能发展功能)

  • 缴纳增值税账务处理
  • 计提的增值税
  • 关于办理退税手续的通知
  • 销项税额是指
  • 餐饮业增值税是多少
  • 税控盘如何看是否反写成功
  • 资产负债表的期初余额是年初余额吗
  • 公司账户的钱怎么取出来
  • 企业所得税允许税前扣除的五险一金
  • 承租人融资租赁设备长期应付款包括租赁资产担保余值
  • 进项抵扣怎么操作
  • 商品买一送一是打五折吗
  • 资产负债表里所有者权益合计为负数正常吗
  • 住房补贴是现金还是转账
  • 营改增后房地产开发税费一览表
  • 收到财产保险赔款会计分录
  • 个税少扣了怎么账平掉
  • 王者荣耀中白起的台词
  • 工业企业增值税负率一般控制在多少
  • 付款给对方怎么做分录
  • 重装系统D盘文件还能恢复吗
  • 王者荣耀中甄姬的cp是谁
  • thinkphp5开发教程
  • 收到保险公司赔付的车辆维修费的会计分录
  • 售后回租经营租赁可以抵扣吗
  • linux抓包 udp
  • 利息保障倍数 资本化利息支出
  • 存货非正常损失的所得税处理
  • Jetson Xavier NX配置全过程——安装jtop和OpenCV4.5.3(二)
  • php图片加水印实例分析
  • vue引入文件路径@的意思
  • 其他收益会计科目怎么写
  • 营改增销售服务范围
  • 债券发行费用包括
  • python异常值处理方法
  • sql去除
  • 固定资产怎么确认价值
  • 内帐税金会计分录
  • 失控票要在抵扣当月转出吗
  • 租赁收入会计分录怎么做
  • 13%和17%税率
  • 企业的资产必须符合哪些条件
  • 使用sql server查询不到会返回什么
  • 短期借款的其它账户
  • 工业企业的会计核算程序
  • 自然人独资交企业所得税吗
  • 企业微信开通微信支付
  • 私车公用产生的费用算不算在公务用车运行维护费中
  • 研发部门的房租可以资本化
  • 成本类账户期末如有余额在借方
  • 公司购买的车辆折旧年限
  • 研发支出资本化支出期末怎么处理
  • 把其他应付款转成实收资本的话需要去工商改注册资本么
  • 个人所得税计算方法2023计算器
  • 银行账跨年一直没做怎么补
  • 商场预付卡
  • 本月多交的增值税
  • 本月无收入还用结转吗
  • 收到增值税发票后该如何处理啊?
  • 账实不符怎么调账
  • 工业企业增值税负率一般控制在多少
  • mysql删除数据库用户
  • windows怎么用
  • win7系统升级到win10后,还能还原回来吗
  • 图解在OS X中管理窗口大小的多种方法
  • explorer.exe中文叫什么
  • win7报错0xc0000428
  • 武汉做无创要预约吗
  • 防止非法使用计算机,可口令
  • win10蓝屏故障
  • 如何优化资本结构
  • windows批处理命令脚本
  • python 转义字符处理
  • 缓动函数网站
  • 模拟新浪微博用户注册程序设计
  • java urlencode如何使用
  • js基础教程
  • 内蒙古国地税网上办税服务厅
  • 车辆购置税非本人可以代缴吗
  • 融资租赁公司购入老旧租赁资产会计处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设