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中相关的计算机图形变换矩阵之:模型视图几何变换的更多相关文章

  1. opengl中相关的计算机图形变换矩阵之:齐次坐标 (摘编)

    模型视图变换(几何变换)矩阵: 1. 齐次坐标:两条平行线也可以相交. 在欧几里得空间中,两条平行线是无法相交的,但是在投影空间(Projective Space)这条定理就不再适用了. 比如上图中, ...

  2. OpenGL(五) 三维变换之模型视图矩阵

    计算机三维图形学中,一个基本的任务是如何描述三维空间中一个物体位置的变化,也就是如何 描述物体的运动.通常情况下,物体位置的变化包含三个基本的变化:平移.旋转和缩放,物体的运动也可以用这三个基本的运动 ...

  3. 浅谈 OpenGL 中相关阻塞问题

    昨天我遇到一个问题,问题如下: 我使用了延迟渲染,我的渲染流程是:Pass1 --> CUDA并行计算 -->Pass2 CUDA并行计算中需要使用Pass1渲染生成的两张纹理,然而我在G ...

  4. OpenGL中坐标系的理解(一)

    在OpenGL中,存在着至少存在着三种矩阵,对应着函数glMatrixMode()的三个参数:GL_MODELVIEW,GL_PROJECTION,GL_TEXTURE. 以下主要描述GL_MODEL ...

  5. Bullet物理引擎在OpenGL中的应用

    Bullet物理引擎在OpenGL中的应用 在开发OpenGL的应用之时, 难免要遇到使用物理来模拟OpenGL中的场景内容. 由于OpenGL仅仅是一个关于图形的开发接口, 因此需要通过第三方库来实 ...

  6. 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 ...

  7. CSharpGL(6)在OpenGL中绘制UI元素

    CSharpGL(6)在OpenGL中绘制UI元素 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入 ...

  8. OpenGL中各种坐标系的理解[转]

    OPENGL坐标系可分为:世界坐标系和当前绘图坐标系. 世界坐标系:在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的.你面对 屏幕,你的右边是x正轴,上面是y正轴,屏幕 ...

  9. OpenGL中glPushMatrix和glPopMatrix的原理

    glPushMatrix.glPopMatrix操作事实上就相当于栈里的入栈和出栈. 很多人不明确的可能是入的是什么,出的又是什么. 比如你当前的坐标系原点在你电脑屏幕的左上方.如今你调用glPush ...

随机推荐

  1. mysql 导出 导入sql 文件

    C:\Users\Eric>mysqldump -uroot -p      demo->数据库名 >  C:\Users\Eric\demo.sql    导出目录地址 导入 sq ...

  2. C#下载图片,用户选择保存路径

    Html代码 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></ti ...

  3. 基于HttpRunner,解析swagger数据,快速生成接口测试框架

    使用HttpRunner默认生成的项目是这样的 命令:httprunner --startproject  项目名称 so,根据这个项目的目录结构,使用python解析swagger接口参数,可以快速 ...

  4. 使用Vim打开十六进制的文件

    So Easy 这里使用打开 Hello.class 文件为例 首先使用 vim -b Hello.class 打开文件,然后在 Vim 的命令模式下输入 :%!xxd 回车即可看见文件内容. 效果: ...

  5. StanfordNLP for JAVA demo

    最近工作需要,研究学习 NLP ,但是 苦于官方文档太过纷繁,容易找不到重点,于是打算自己写一份学习线路 NLP 路线图 好博客韩小阳 斯坦福NLP公开课 统计学习方法 好博客 链接地址:https: ...

  6. NoSQL与其常见的产品

    一. 什么是NoSQL NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",它是一种非关系型数据库. 二. 为什么要有NoSQL 在现代的计算系统上每 ...

  7. iconv - 字符集转换

    总览 (SYNOPSIS) iconv [-f encoding] [-t encoding] [inputfile ...] 描述 (DESCRIPTION) iconv 程序 把 文本 从 一种 ...

  8. AIX用户和组管理

    1.用户登录和初始化

  9. mysql 的主从

    MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQ ...

  10. linux shell鼠标键盘快捷键