图形学 ---- 二维几何变换(二维图形矩阵平移,旋转,缩放)
二维图形几何变换,矩阵计算
前言:对于一个图形的几何变换,对应的是操作到图形中的每一个点!
即对每一个点做出相应的几何变换。比如平移,就是对二维图形的每个点都平移相同的距离;旋转则是对每一个点,基于基准点旋转相应角度!缩放操作也是如此!
所以下面的矩阵计算都是基于二维平面上一个点(基于基准点)的几何变换!
二维图形平移:
’
如上图所示:P(x,y),P’(x’,y’),x轴平移距离:Tx,y轴平移距离:Ty;
则有
将x,y表示为列矩阵,则有:
有P’ = P + T;
二维图形旋转:
在平时遇到的图形旋转,一般如7.3图所示,基于某一个点的旋转!目前为了方便了解矩阵计算,我们先基于原点做旋转,基于某个基准点的旋转我们后面再看!
如7.4所示,点(x,y)绕原点o旋转到(x’,y’);有:
x,y分别有:
则上式可表示为:
将x,y表示为列矩阵,则有:P’ = RP
其中R用矩阵表示为:
二维图形缩放:
如上图所示,将三角形以原点为基准点放大!则对应的 三角形上的每一个点距离原点的长度都会被放大S倍!
其中Sx,Sy分别为两个坐标轴上缩放的倍数!
矩阵表示为:
到此我们了解了二维图形基于原点的 平移,旋转,缩放操作!下一篇,我们继续探讨矩阵逆运算和矩阵复合运算!
图形学 ---- 二维几何变换(二维图形矩阵平移,旋转,缩放)相关推荐
- 三维坐标要建一个4*4的矩阵?平移 旋转 缩放
移植不知道三维物体的旋转平移缩放和矩阵的关系.找到这篇文章借鉴一下. 转自:https://blog.csdn.net/ALLENJIAO/article/details/80348362 怎么平移一 ...
- Unity矩阵平移旋转缩放Matrix4x4
Unity中的矩阵(Matrix4x4) 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵,所以在这里分享下基础的矩阵案例旋转.平移.缩放.(注意这里本文中的transform组件式基于unity ...
- 二维几何图形自由变换的思路(平移、缩放、旋转)
目录 图形自由变换 图形的存储方式 鼠标交互 图形拓扑算法 总结 常见的二维几何图形包括点.线.面三种类型,而某些的地图标准规范中还区分多点.多线.多面.环等.本文,主要讲述简单的几何图形的自由变换( ...
- 三维空间中的几何变换-平移旋转缩放
前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...
- C#实现图形的平移和缩放
任务 打开一幅图片,实现图片的平移和缩放. 代码 1. using System; 2. using System.Collections.Generic; 3. using System.Compo ...
- webgl图形平移、缩放、旋转
文章目录 前言 平移 图示 代码示例 缩放 图示 代码示例 旋转 公式推导 代码示例 总结 前言 在webgl中将图形进行平移.旋转.缩放的操作称为变换或仿射变换,图形的仿射变换涉及到顶点位置的修改, ...
- c语言二维图形变换程序,【计算机图形学】3-2 二维几何变换根本代码
[计算机图形学]3-2 二维几何变换基本代码 返回目录 基本理论参见:[计算机图形学]3-1 二维几何变换基本理论 注:这里不考虑插值的问题. 全部的代码都在https://github.com/Cy ...
- 【计算机图形学】小白谈计算机图形学(四)二维三维图形变换—1
小白谈计算机图形学(四)二维三维图形变换-1 窗口与视图 二维图形的几何变换 平移变换 比例变换 旋转变换 二维图形变换的矩阵表示 三种变换 齐次坐标变换 原二维线性变换 齐次坐标法 复合变换 例题: ...
- 计算机图形学笔记——第7章 二维几何变换 Python
第7章 二维几何变换 应用于对象几何描述并改变它的位置.方向或大小的操作称为几何变换(geometric transformation). 几何变换有时也称为建模变换(modeling transfo ...
最新文章
- python哪一版好用-Python最好用的编辑器是哪款?北京老男孩教育
- C++的sort排序法
- Centos root权限的变化
- java web项目中连接mysql数据库,javaweb之eclipse工程连接mysql数据库
- phome_enewsclass 数据表字段解释(栏目主表)
- Unity导入3D模型的过程与方法
- 元气骑士如何获得机器人成就皮肤_元气骑士:获得成就叹息之墙,花圃免费开,附带5000蓝币奖励...
- 团队作业8----第二次项目冲刺(beta阶段)5.20
- 一个成功的BI项目实施需要注意哪些?
- 常见c语言语法错误,C语言常见语法错误.doc
- 万物互联开发平台NSDK
- 从金庸小说到DDoS防护
- 会议审批 查询会议签字
- c++ 序列化库iguana使用总结
- Python标准库collections库:超好用的counter计数器,不接受反驳!
- 微信最新防封技术,域名防红技术分析
- 微信小游戏和小程序的区别
- 3G入门教程--通讯基础
- 罗素问题 ——来自知乎大神
- 【Python web 开发】热销商品 功能实现
热门文章
- 关于ADC输入前级的抗混叠滤波器问题以及驱动负载电容的电阻值选择建议
- AlphaFold2源码解析(10)--补充信息1(residue_constants)
- 宝塔BT面板无法启动修复方法
- 优秀的JavaScript模块是怎样炼成的
- SLAB SLUB
- html怎样创建复选框,如何使用可点击标签创建HTML复选框
- 【年终】电感两端施加正弦波电流,电感两端的电压波形是怎样的?
- ThinkPad物理机安装Linux系统实战企业级项目之CentOS安装
- Linux内核版本和发行版本的区别
- Jmeter定时器之吞吐量整形定时器jp@gc Throughput Shaping Timer