位置: 编程技术 - 正文

4.2 模型变换和视图变换(模型变量是什么)

编辑:rootadmin

推荐整理分享4.2 模型变换和视图变换(模型变量是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:模型法和转换法的区别,模型变换矩阵,转换模型的特点,模型变换矩阵,模型变换法基本思路,变换模型是一种适用于 方法的模型,模型变换法,变换模型是一种适用于 方法的模型,内容如对您有帮助,希望把文章链接给更多的朋友!

从“相对移动”的观点来看,改变观察点的位置与方向和改变物体本身的位置与方向具有等效性。在OpenGL中,实现这两种功能甚至使用的是同样的函数。

进行模型和视图变换,主要涉及到三个函数: glTranslate*,把当前矩阵和一个表示移动物体的矩阵相乘。三个参数分别表示了在三个坐标上的位移值。 glRotate*,把当前矩阵和一个表示旋转物体的矩阵相乘。物体将绕着(0,0,0)到(x,y,z)的直线以逆时针旋转,参数angle表示旋转的角度。 glScale*,把当前矩阵和一个表示缩放物体的矩阵相乘。x,y,z分别表示在该方向上的缩放比例。

注意我都是说“与XX相乘”,而不是直接说“这个函数就是旋转”或者“这个函数就是移动”,这是有原因的,马上就会讲到。 假设当前矩阵为单位矩阵,然后先乘以一个表示旋转的矩阵R,再乘以一个表示移动的矩阵T,最后得到的矩阵再乘上每一个顶点的坐标矩阵v。所以,经过变换得到的顶点坐标就是((RT)v)。由于矩阵乘法的结合率,((RT)v) = (R(Tv)),换句话说,实际上是先进行移动,然后进行旋转。即:实际变换的顺序与代码中写的顺序是相反的。由于“先移动后旋转”和“先旋转后移动”得到的结果很可能不同,初学的时候需要特别注意这一点。 OpenGL之所以这样设计,是为了得到更高的效率。但在绘制复杂的三维图形时,如果每次都去考虑如何把变换倒过来,也是很痛苦的事情。这里介绍另一种思路,可以让代码看起来更自然(写出的代码其实完全一样,只是考虑问题时用的方法不同了)。 让我们想象,坐标并不是固定不变的。旋转的时候,坐标系统随着物体旋转。移动的时候,坐标系统随着物体移动。如此一来,就不需要考虑代码的顺序反转的问题了。

1. glTranslatef(x,y,z); 移动当前绘图原点。 并不是相对屏幕中心移动,而是相对与当前所在的屏幕位置。 x,y,z分别代表沿x轴,y轴,z轴移动的距离。

4.2 模型变换和视图变换(模型变量是什么)

2. glRotatef(Angle,Xvector,Yvector,Zvector); 负责让对象绕某个轴旋转。 Angle通常是某个变量代表转过的角度。Xvector,Yvector,Zvector三个参数则共同决定旋转轴的方向

示例:

要让你的对象绕着自身的轴旋转,你必须让对象的中心坐标总是(0.0f,0.0f,0.0f)

3. glScalef(x,y,z); x,y,z分别为模型在x,y,z轴方向的缩放比。

参数也可取负数,也可以理解为先关于某轴翻转°,再缩放;

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++设置全局变量 在一个.cpp(如a.cpp)中,在不属于任何类的地方,定义这个变量:intg_myvar;在一个.h文件中,如myglobal.h中,声明这个变量是extern的:externintg_myvar;

JOGL测试 JOGL是JAVA通过JNI的方式调用OpenGL的封装。给出一个简单Demo(所需依赖,不是最小依赖,有多余的jar和DLL)1、环境配置依赖jar包:指定native库工程配置和javac

opengl中使用顶点数组的方法 #includeGL/glut.h#includestdlib.h#includestdio.h#ifdefGL_VERSION_1_1#definePOINTER1#defineINTERLEAVED2#defineDRAWARRAY1#defineARRAYELEMENT2#defineDRAWELEMENTS3intsetupMethod=POINTER;//intderefMethod=D

标签: 模型变量是什么

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

上一篇:unity3D游戏开发之雾效、水效和音效(Unity3D游戏开发(第2版))

下一篇:C++设置全局变量(c++全局变量赋值)

  • 多交了企业所得税,下年度退税,需要更正撒意思
  • 税负税负率与税率区别?
  • 增值税进项税抵扣时间
  • 支付一次性劳务报酬怎么做账
  • 金融工具减值的简化处理
  • 小规模纳税人差额计税情形
  • 餐饮公司开分店还需要办手续吗
  • 社会保险申报表中工资总额累计金额是什么意思
  • 付给总机构的管理费可以税前扣除吗
  • 个人生产所得税计算
  • 股权收购溢价的原因
  • 少数股东权益如何保障
  • 辅助生产车间最后结转到哪里
  • 企业所得税连续3年亏损预警自查报告
  • 基本户开户费多少钱
  • 给职工发放的福利费,要从应付职工薪酬科目吗
  • 个税申报没交会收滞纳金吗
  • 含税进货价款怎么算
  • 农产品发票有抵税吗
  • 金税盘领用发票查询不到
  • 办理金税盘需要多少钱
  • 土地增值税计算题及答案解析
  • 哪种情形
  • 固定资产小于500万一次性扣除政策
  • 发票收到本月进账怎么办
  • 企业买断政策
  • 广告公司发生的费用要计入主营业务成本吗
  • 冲减备用金该怎么做账
  • 销售额是否含税?
  • mcshield.exe是什么进程
  • php变量格式说法错误的是
  • PHP:imagecreatefromwbmp()的用法_GD库图像处理函数
  • laravel实战教程
  • 记账凭证错误用什么更正
  • php -a
  • php 字符串处理函数
  • 命令m文件
  • 金融机构存放的保证金存款
  • 适用于windows7的更新程序会更新到windows10吗
  • 厂房没租出去要交税吗
  • 弥补亏损的会计分录
  • 营业外收入在现金流量表中填入哪列
  • 留抵税额可以保留几年
  • 学电脑哪个网站比较好
  • c语言typedef的用法
  • 公司帮员工全额买社保该怎么入账?
  • sqlserver 数据库加密
  • 收到银行承兑汇票怎么兑现
  • 一般纳税人转小规模纳税人的条件
  • 诉讼期间的利息法院支不支持
  • 周转材料怎么做分录
  • 在建工程物资属于存货吗
  • 加油费用属于什么科目明细
  • 调试机器要注意事项
  • 应付职工薪酬的工资是实发工资还是应发工资
  • 公司购买防疫物资的申请
  • 辅助核算设置后使用后还可以随时修改
  • 股东借款转增资本公积会计处理
  • 公司法人借款给公司用责任承担
  • 银行存款利息记账凭证
  • 先出报表还是先报表
  • 原材料会计科目
  • 故意销毁会计凭证、会计账簿罪
  • 公司自建的房子能买吗
  • 如何设置window图标大小
  • win7系统多久不动自动关机
  • win8开始屏幕设置
  • win8怎么外接屏幕
  • windows mobile应用商店
  • visual studio 10 cocos2dx项目移植到eclipse的android项目(配置请参照上一篇文章开发环境搭建)
  • Node.js 中exports 和 module.exports 的区别
  • unity3d如何发布ios教程
  • rsa python3
  • js过滤特殊字符
  • javascript 自动执行
  • jquery.form.min.js
  • javascript面向对象精要pdf下载
  • js类的定义方法
  • 朝阳区下面分几个区
  • 企业税务代码是什么号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设