二维图形的基本几何变换:平移、比例、旋转、反射、错切
1.有关变换
1.1平移变换
rigid-body transformation不产生形变的移动物体的刚体变换,为P点沿着直线从一个坐标位置到另一个坐标位置的过程,例图:
推导过程:
结果的平移变换矩阵:
1.2缩放变换
P点相对于坐标原点沿着x轴方向缩放 Sx 倍,沿着y轴方向缩放Sy倍(Sx,Sy缩放系数)。
Sx=2,Sy=3.
推导过程:
矩阵:
缩放变换总结:1.当Sx=Sy时,图形等比放大或者缩小(形状不不变大小变)。2.当Sx≠Sy时在x轴和y轴的变换不相等。
1.3旋转变换
P点绕坐标原点转动一定的角度(顺时针正,逆时针负),得到p’的重定位过程!
逆时针旋转θ角的矩阵:
1.4对称变换
1.关于x轴对称的:
2.关于y轴对称的:
3.关于原点对称的:
4.关于y=x对称的:
5.关于y=-x对称的:
1.5错切变换 (剪切,错位变换)
用于产生弹性物体变形处理。
它的变换矩阵:
1.沿x轴方向的b=0;
2.沿y轴方向的c=0;
2、复合变换
2.1两次平移
相加即可:
2.2两次缩放
相乘即可:
2.3两次旋转
角度相加即可:
2.4 有关”普通点“的缩放旋转
因为在缩放结合旋转选取的参照点是非常重要的,以上说的都是最基本的情况(原点),如果遇到普通点,解决思路:将该点移动到原点,在进行变换,最后将点移动到原来的位置就可以了。
2.4.1普通点(xf,yf)缩放
2.4.2普通点(xf,yf)旋转
3.有关二维几何计算
几何变换通式:P’=P*T
3.1 点变换
先将点表示为规范化齐次坐标形式,再乘以变换矩阵。
3.2直线变换
将直线的两个端点表示为规范化齐次坐标形式,再乘以变换矩阵。、
3.3多边形变换
将多边形的顶点表示为规范化齐次坐标形式,再乘以变换矩阵。
4.复合变换矩阵点乘的顺序
4.1第一种:
先执行变换的矩阵放在前面,后执行变换的矩阵放在后面。
4.2第二种:
先执行变换的矩阵放在后面,后执行变换的矩阵放在前面。
二维图形的基本几何变换:平移、比例、旋转、反射、错切相关推荐
- 图像几何变换C++实现--镜像,平移,旋转,错切,缩放
一.图像几何变换介绍 图像的几何空间变换是图像处理中的最基础的算法,是指对原始图像按需要改变其大小.形状和位置的变化,原始图像与目标函数之间的坐标变换函数为线性函数.二维图像的基本几何变换主要包括镜像 ...
- 三维图形的平移,旋转与错切
1.平移变换 三维图形的平移变换可以描述为: %% 圆的平移,x加1,y加1,z+1 clc;clear all; figure(1); axis equal; sphere(50);%球由5 ...
- matlab 使得三维图形可以手动旋转,三维图形的平移,旋转与错切
1.平移变换 三维图形的平移变换可以描述为: %% 圆的平移,x加1,y加1,z+1 clc;clear all; figure(1); axis equal; sphere(50);%球由50*50 ...
- Android 绘图基础:Bitmap(位图)与Matrix(矩阵)实现图片5种操作(平移、旋转、错切、缩放、对称)
Android的Matrix利用数学原理实现图片平移.旋转等操作详解 很庆幸自己的线性代数学的还可以,理解Matrix的矩阵变换完全没有问题.Matrix矩阵实现图片的平移旋转等操作涉及到线性代数问题 ...
- 三维空间几何变换原理[平移、旋转、错切]
- 图形学 ---- 二维几何变换(二维图形矩阵平移,旋转,缩放)
二维图形几何变换,矩阵计算 前言:对于一个图形的几何变换,对应的是操作到图形中的每一个点! 即对每一个点做出相应的几何变换.比如平移,就是对二维图形的每个点都平移相同的距离:旋转则是对每一个点,基于基 ...
- 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等
接上文 计算机图形学 学习笔记(六):消隐算法:Z-buffer,区间扫描线,Warnock,光栅图形学小结 在图形学中,有两大基本工具:向量分析,图形变换.本文将重点讲解向量和二维图形的变换. 5. ...
- 二维图形几何变换(计算机图形学)
说明:本实验代码在vs2022下可正常运行,本实验适配于计算机图形学新版(VC++ MFC )第二版 1.实验目的 1)掌握3*3矩阵乘法运算的编程实现 2)掌握平移,比例,旋转三种基本二维几何变换矩 ...
- 利用Turbo C进行平面二维图形的平移,旋转,缩放,对称
[实验内容] 以矩阵运算为数学基础,采用旋转.平移.缩放.对称等基本几何变换,对一简单的二维图形做变换. [实验步骤] 1. 编写二维图形基本变换(包括旋转.平移.缩放.对称)的通用子程序: 2. 以 ...
最新文章
- 让人“眼前一亮、不明觉厉”的互联网技术PPT
- 继承ViewGroup类
- ASP中时间格式转换
- JSR 303约束规则
- spark on yarn 完全分布式_Apache Spark探秘:三种分布式部署方式比较
- Java多线程(六)之Deque与LinkedBlockingDeque深入分析
- 第四篇 Python循环
- python读取配置文件获取所有键值对_python读取配置文件 变量 ConfigParser模块
- 以二进制输出64位类型的数据_Java入门第五课:Java基本数据类型与变量的声明...
- 做真正Hacker 的乐趣──自己动手去实践
- Visual Studio助手VAssistx各版本破解教程
- (IoT物联网)天线的设计步骤 - 完整收藏版
- 旋转编码器EC11_支持长按、短按、双击、顺时针逆时针
- 股票做空机构-浑水公司
- VMware安装Ubuntu 21.10
- python后端工程师简历_【社招】字节跳动 - 后端开发工程师( Python Golang)-懂车帝...
- 嵌入式工资为什么比纯软工资低那么多?
- 读书笔记:《不抱怨的世界》
- 华为操作系统鸿蒙 hms生态系统,华为HMS生态系统服务是什么 鸿蒙操作系统机会来了...
- 线控改装技术连载一之——线控开端和车辆组成