平面的坐标转换
2016-01-08 09:36
211 查看
【原文来自:http://blog.csdn.net/zhang11wu4/article/details/47754035】
平面的坐标转换
Written by Paul BourkeJanuary 1987
定义一个2维平面上的点的坐标转换:
P = ( x , y ) -> P' = ( x' , y' )
转换
转换(变换) 是通过在x方向上移动Tx距离,在y方向上移动 Ty 距离:x' = x + Tx
y' = y + Ty
缩放
缩放是通过在x方向上关于原点作Sx 、在y方向上关于原点作Sy倍的缩放:x' = Sx x
y' = Sy y
如果Sx 与 Sy 不相等,会导致在两者相比值更大的方向出现拉伸。
要在某一个特点的点附近进行缩放,首先将该点变换到原点,作缩放,在回复坐标位置。例如缩放点 (x0,y0)附近区域:
x' = x0 + Sx ( x - x0 )
y' = y0 + Sy ( y - y0 )
旋转
关于原点作顺时针旋转角度A:x' = x cos(A) + y sin(A)
y' = y cos(A) - x sin(A)
如果要关于某个特点的点作旋转,方法同缩放。先把坐标变换到原点,作旋转,在回复坐标位置。
反射
关于x轴作镜面反射x' = x
y' = - y
关于 y轴作镜面反射
x' = - x
y' = y
若要对任意一条直线作镜面反射,先把直线与数轴的交点(任选一个,选定不要变换)变换到原点,旋转到该直线与数轴重合,作反射,逆旋转,逆变换会原来位置。
切变
沿x轴切变 SHx x' = SHx x
y' = y
沿y轴切变 SHy
x' = x
y' = SHy y
相关文章推荐
- GIT 命令梳理
- linux inode已满解决方法
- 周末分享——繁忙≠效率!工作中如何习得“无为之智”
- 【转】深入理解Java:注解(Annotation)自定义注解入门
- 作业
- PHP7的新特性
- HDU 1048 The Hardest Problem Ever【水】
- Centos7下Hive-1.2.1安装部署
- 赞扬和批评的黄金比例
- 手机触摸屏有电阻屏和电容屏,有什么区别?
- iOS自定义tableViewCell中的按钮无法点击的解决方法
- Centos7下Python3的安装
- Suruts2的工作原理
- 秒杀系统架构分析与实战
- 防误删虚拟机网卡
- Python Web-第三周-Networks and Sockets(Using Python to Access Web Data)
- Godef 插件无法跳转问题
- VC6神迹外挂的DIY
- 命令模式
- Eclipse中 搭建 Spring+SpringMVC+Mybatis整合(下)