opengl中相关的计算机图形变换矩阵之:模型视图几何变换
3. 二维变换矩阵
x' a11 a12 a13 x a11x a12y a13z
y' = a21 a22 a23 y = a21x a22y a23z
z' a31 a32 a33 w a31x a32y a33z
3.1二维平移变换矩阵
P =(x, y, 1)
P*=(x*,y*,1)
1 0 tx
T = 0 1 ty
0 0 1
P*= T(tx,ty)P
3.1二维比例变换矩阵
sx 0 0
S = 0 sy 0
0 0 1
P*= S(sx,sy)P
3.2二维旋转变换矩阵
以原点为中心
cos(r) -sin(r) 0
R = sin(r) cos(r) 0
0 0 1
P*= R(r)P
3.3反射变换矩阵
X 轴对称
1 0 0
RX= 0 -1 0
0 0 1
Y 轴对称
-1 0 0
RY= 0 1 0
0 0 1
原点对称
-1 0 0
RO= 0 -1 0
0 0 1
3.4 错切变换矩阵
X 轴错切
1 s 0
SX= 0 1 0
0 0 1
x* = x+sy; y* = y
Y 轴错切
1 0 0
SY= s 1 0
0 0 1
x* = x; y* = sx+y
4. 三维变换
平移 比例 错切 可对照二维做扩展
旋转:
绕X轴
0 0 0 1
0 cos(r) -sin(r) 0
RX= 0 sin(r) cos(r) 0
0 0 0 1
绕Y轴
0 cos(r) sin(r 1
0 1 0 0
RY= 0 -sin(r) cos(r) 0
0 0 0 1
绕Z轴
cos(r) -sin(r) 0 0
RZ= sin(r) cos(r) 0 0
0 0 1 0
0 0 0 1
opengl中相关的计算机图形变换矩阵之:模型视图几何变换的更多相关文章
- opengl中相关的计算机图形变换矩阵之:齐次坐标 (摘编)
模型视图变换(几何变换)矩阵: 1. 齐次坐标:两条平行线也可以相交. 在欧几里得空间中,两条平行线是无法相交的,但是在投影空间(Projective Space)这条定理就不再适用了. 比如上图中, ...
- OpenGL(五) 三维变换之模型视图矩阵
计算机三维图形学中,一个基本的任务是如何描述三维空间中一个物体位置的变化,也就是如何 描述物体的运动.通常情况下,物体位置的变化包含三个基本的变化:平移.旋转和缩放,物体的运动也可以用这三个基本的运动 ...
- 浅谈 OpenGL 中相关阻塞问题
昨天我遇到一个问题,问题如下: 我使用了延迟渲染,我的渲染流程是:Pass1 --> CUDA并行计算 -->Pass2 CUDA并行计算中需要使用Pass1渲染生成的两张纹理,然而我在G ...
- OpenGL中坐标系的理解(一)
在OpenGL中,存在着至少存在着三种矩阵,对应着函数glMatrixMode()的三个参数:GL_MODELVIEW,GL_PROJECTION,GL_TEXTURE. 以下主要描述GL_MODEL ...
- Bullet物理引擎在OpenGL中的应用
Bullet物理引擎在OpenGL中的应用 在开发OpenGL的应用之时, 难免要遇到使用物理来模拟OpenGL中的场景内容. 由于OpenGL仅仅是一个关于图形的开发接口, 因此需要通过第三方库来实 ...
- three.js中的矩阵变换(模型视图投影变换)
目录 1. 概述 2. 基本变换 2.1. 矩阵运算 2.2. 模型变换矩阵 2.2.1. 平移矩阵 2.2.2. 旋转矩阵 2.2.2.1. 绕X轴旋转矩阵 2.2.2.2. 绕Y轴旋转矩阵 2.2 ...
- CSharpGL(6)在OpenGL中绘制UI元素
CSharpGL(6)在OpenGL中绘制UI元素 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入 ...
- OpenGL中各种坐标系的理解[转]
OPENGL坐标系可分为:世界坐标系和当前绘图坐标系. 世界坐标系:在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的.你面对 屏幕,你的右边是x正轴,上面是y正轴,屏幕 ...
- OpenGL中glPushMatrix和glPopMatrix的原理
glPushMatrix.glPopMatrix操作事实上就相当于栈里的入栈和出栈. 很多人不明确的可能是入的是什么,出的又是什么. 比如你当前的坐标系原点在你电脑屏幕的左上方.如今你调用glPush ...
随机推荐
- Spring依赖模块
1.spring maven依赖 https://www.cnblogs.com/nwu-edu/p/9542074.html
- centos 防火墙 iptables firewalld SELinux
参考 Centos7 只启用iptables 禁用firewalld功能 java.net.NoRouteToHostException: 没有到主机的路由 相关内容 centos7 中才开始引用fi ...
- java按值传递?
原文链接:https://blog.csdn.net/scholar_man/article/details/80900212 在Java中,参数都是按值传递的.被传递到方法中的拷贝值,要不就是一个引 ...
- 在mac上配置cocos2d-x开发环境
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012282115/article/details/24374539 一.首先下载cocos2d-x ...
- 01Spring基于xml的IOC配置--入门
01Spring基于xml的IOC配置 1.创建一个普通的maven工程 1.1 选择maven,不用骨架,点击下一步. 1.2 填写GroupId.ArtifactId.Version.填完点击下一 ...
- .net几种timer区别
概述:.net框架不同名称控件都包含了各种timer,但每个timer有什么具体区别呢? 一.System.Threading private static void ThreadingTimer() ...
- vue elementui table组件内容换行
解决方案 tableData = [ { "name": "domain111", "metric": [ "平均耗时" ...
- 通过三层交换机实现不同VLAN间的通信(案例+Cisco模拟器配置)
如图,其中PC1和4位于销售部VLAN10,PC2和PC5位于市场部VLAN20,PC3和PC5位于财务部VLAN30,各主机的IP地址以及子网掩码已列出,下面将讲解如何配置利用三层交换机来实现不同V ...
- DigitalOcean 推荐的ubuntu16下LAMP安装过程
LAMP安装过程: How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 16.04 (另一个参考例程:Ubuntu 16.0 ...
- centos7下通过LVS的DR模式实现负载均衡访问
一.两台服务器作为real server ,一台作为director director:172.28.18.69 vip:172.28.18.70 real server1:172.28.18.71 ...