位置: 编程技术 - 正文

利用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(浅析学校德育的个体智能发展功能)

  • 企业所得税的计提和缴纳分录
  • 出纳与会计现金对不上
  • 全年一次性奖金税率表
  • 信用代码证过期银行能转账吗
  • 异地施工需要办理什么手续
  • 单位社保缴费基数怎么确定
  • 房地产公司产品无偿提供他人使用 税
  • 异地销售存货如何确定纳税地点
  • 本月计提所得税费用
  • 募集资金怎么算
  • 企业申请核定征收的要求
  • 机票行业一定要开发票吗?
  • 增值税抵扣凭证包括桥闸通行费发票
  • 没进项发票要交多少税
  • 房地产企业预收账款
  • 增值税发票不小心撕坏了怎么办
  • 利息支出手续费
  • 年平均息税前利润是什么意思
  • 生产成本属于什么会计要素
  • 小规模纳税人需要建账吗
  • 企业结算备付金怎么做账
  • 贷款损失准备如何提取
  • 生产企业成本会计科目
  • mac qq音乐怎么下载mp3格式的音乐
  • 工会经费使用具体办法
  • 车站计算机系统组成
  • win11安装程序提示非管理员账号
  • 递延所得税资产是什么意思
  • 哪些发票不可以通过数电平台开具
  • 股权转让所得怎么做账
  • windows 11 正式版实际使用体验如何?
  • 防止盗链的php代码
  • 个人股权转让应税凭证名称
  • thinkphp常用函数
  • 一般纳税人筹建期不用交税吗
  • echarts柱状图坐标轴
  • typescript完全解读
  • react_router
  • 增值税普通发票可以抵扣吗
  • 民办非企业性质还是商业性质吗
  • 主营营业成本会计分录
  • java 读写锁 map
  • 作价出资土地与出让区别
  • 增值税小规模纳税人适用3%征收率
  • 子公司可以吸收母公司吗
  • 本期应补退税额就是交钱吗
  • 年金终值系数是指已知( ),求终值
  • 税前扣除项目主要包括
  • 2020年小规模纳税人增值税政策
  • sql server搜索语句
  • 税控服务费减免会计分录
  • 应收账款多记账怎么做调整分录
  • 工会经费保留整数吗
  • 工程项目采购
  • 社保逾期滞纳金和利息
  • 收到保险公司的发票怎么做账
  • 房地产公司预收房款什么时候确认收入
  • 主营业务成本带二级科目吗
  • 报表其他非流动资产
  • 消耗性生物资产与生产性生物资产的区别
  • 设置账簿的依据
  • mysql向指定字段中添加数据
  • win7系统中怎么卸载安装的软件
  • vmwares
  • 装win7提示失败怎么办
  • linuxcpu监控
  • 因以下文件的损坏或者丢失,windows无法启动hal.dll
  • win7 64位系统RAR压缩文件损坏该怎么修复
  • window 8
  • linux中使用find命令查找文件
  • WIN10更新失败
  • unity进度条有百分比代码
  • JavaScript驾驭网页-CSS与DOM
  • javascript中的函数包括内置函数和自定义函数
  • 使用nodejs实现简单的局域网聊天功能
  • python数学语言
  • 安卓自动登录脚本
  • 税务软件服务商
  • 对金融机构与小型企业
  • 新华保险有返本金吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设