用矩阵表示图形旋转缩放变换
二维图形
1.缩放
假设x和y都缩小到0.5倍
那新的x’ = 0.5x 新的y’ = 0.5y 我们现在通用化一下,假设x方向缩放为Sx,y方向缩放为Sy,并且用矩阵的方法可表示如下
-1 <= Sx <= 1, -1 <= Sy <= 1
2.斜切
我们先假设y的高度是1,顶部x方向移动距离是a。
y始终是不变化的
对于顶部的线,x’ = x + a;
对于底部的线, x’ = x;
对于任意位置,x’= x + a* y ;
转为矩阵
假设y的高度是y0,顶部x方向移动距离是a0。那a = a0 / y0;
这钟斜切是保证一个方向的坐标不变的,还有一种如下
相当于把矩形推到
对于顶部线x’ = x + sinα * y; y’ = cosα * y;
显然对于任意一点,也是如上公式
那转换为矩阵表示为
3.旋转
假设有一个矩阵可以描述旋转变换
然后根据特殊点来求解A、B、C、D;
先根据特殊点(1, 0)得到如下关系
求解后可得
同理再根据特殊点(0,1)求解B、D的值
最后可得
至此我们知道旋转和缩放和斜切都可以用如下形式表示
4.平移
我们假设x方向移动了tx; y方向移动了ty, 则
那就不能表示为
只能表示成
5.小结
那旋转缩放斜切平移通用表达式就只能表示为
但我们不想对平移特殊处理,只想用一个矩阵表示,后面不用加
此处引入齐次坐标
定义 二维点和向量如下
那平移就可以表示为
通用表表达式则变为
至此,所有变换都能用一个矩阵来表示了
6.组合
那如何用变换矩阵表示下面这个图呢
只要先旋转再平移即可
那可不可以先平移再旋转呢?
不行,因为旋转是以原点作为中心点的
先平移再旋转会得到如下结果
不在原点的旋转可以先移回原点,旋转后再移回去
三维图形
此处也引入齐次坐标
定义三维的点和向量为
通用变换为
【注】:文章资料来源于【现代计算机图形学入门-闫令琪】
用矩阵表示图形旋转缩放变换相关推荐
- WebGL编程指南-24 同时使用漫反射光和环境反射光、立方体平移旋转缩放变换时漫反射光和环境反射光处理
1.demo效果 此效果是上一章绘制的立方体基础上,向Y轴方向平移一个单位,然后绕Z轴旋转30度. 如上图,归纳一下物体坐标变换法向量变化的规律如下 平移变换, 法向量不会改变 旋转变换, 大多数情况 ...
- WebGL入门(六)-通过坐标计算实现图形的平移、旋转和缩放变换
通过坐标计算实现图形的平移.旋转和缩放变换 1.图形的平移 1.1平移效果说明 1.2平移原理说明 1.3平移图形的实现步骤 1.3.1在顶点着色器中声明存放平移信息的uniform变量u_Trans ...
- OpenGL学习之路6----平移,旋转和缩放变换
代码放在github上 本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程 一.准备工作 1.1 表示一个矩阵 我们需要在程序中使用矩阵,我们需要用计算机程序语言来表示出来一个矩阵. ...
- 图片(旋转/缩放/翻转)变换效果(ccs3/滤镜/canvas)
以前要实现图片的旋转或翻转,只能用ie的滤镜来实现,虽然canvas也实现,但ie不支持而且不是html标准. css3出来后,终于可以用标准的transform来实现变换,而canvas也已成为ht ...
- 【opencv_getRotationMatrix2D、warpAffine 仿射变换实现图像旋转缩放 】
文章目录 仿射变换的基本概念 几种常见的仿射变换形式: 进行仿射变换:warpAffine 函数 代码示例: 仿射变换的基本概念 仿射变换是一种二维坐标(x, y)到二维坐标(u, v)的线性变换,其 ...
- 三维空间中的几何变换-平移旋转缩放
前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...
- 游戏对象的移动旋转缩放
1.创建一个游戏工程, 命名为PRSGo 2.在Project视图中创建3个文件夹, Scene文件夹.Resources文件夹和Script文件夹 3.将当前场景保存为GameScene 4.创建M ...
- 计算机图形学图形旋转_计算机图形学翻译
计算机图形学图形旋转 计算机图形学| 翻译 (Computer Graphics | Translations) Transformation techniques mean to modify th ...
- 将三角形绕点b顺时针旋转90度_模型 | 图形旋转与翻折题型汇编
一文搞定-文章推荐-点击阅读 初中数学必会的12个几何模型(222页Word) 2020年中考数学33个模型全梳理(125页Word) 2021中考18个必考几何模型大梳理(656页PPT) 中考模型 ...
最新文章
- 清华大学 现代软件工程 结对编程项目 (一)
- C++从vector中删除指定元素
- 【转】深入理解JVM—JVM内存模型
- 小米路由器mini无线连接HP1010打印机
- Nodejs: redis客户端通过mset方法一次性批量写入多个key的值
- ubuntu下matplotlib的字体设置(新罗马字体)
- css 排版_Web排版的未来:CSS字体4级
- TDA4VM中各个CPU对应的名字
- mysql中长整型是longint_整型int和长整型long
- ai星际探索 爪子_通过特征空间探索实现可解释的人工智能
- 手机做了防抓包,如何抓包
- 海康摄像机如何用第三方域名/外网固定IP方式远程观看?--官方文档记录
- android管理交换机,适用于Android的Visual Studio模拟器 – 运行模拟设备需要内部虚拟网络交换机...
- 视频教程-由浅入深Java零基础入门-Java
- 一行代码实现微信多开
- Java 北大青鸟 第一学期 第四章 选择结构(二) 上级练习+课后作业
- msk调制 vhdl_基于FPGA的MSK调制解调器的设计与仿真
- 学习用到的英文词汇【英语收藏】
- TortoiseSVN (Subversion客户端) 使用手册(中文) (四)
- Python基础练习之名片管理器
热门文章
- 高性能Javascript(1)
- ajax无线遥控器,利用python+tkinter做一个简单的智能电视遥控器
- 美肤宝母公司环亚冲刺深交所:年营收超20亿 为胡兴国家族企业
- Springboot旅游网的设计与实现xb29f计算机毕业设计-课程设计-期末作业-毕设程序代做
- 太敢拍了!20万条弹幕告诉你,《扫黑风暴》为何能掀起收视热潮?
- 【Web前端学前体验】HTML+CSS 实战练习-Olay玉兰油官网
- 带动画效果的下拉菜单
- php头像获取,php获取QQ头像并显示的方法
- 职业学校计算机教学创新论文题目,信息技术论文题目大全
- 电脑开机时多出来个 Windows PE 操作系统选项? 如何去除掉?