二维与三维坐标变换

二维几何变换

  • 齐次坐标就是用n+1维矢量表示n维矢量,(p(x,y))的齐次坐标表示为((wx,wy,w)=(X,Y,w))。
  • 二维规范化齐次坐标:(w=1)时,(p(x,y,1))
  • 类似三维规范化齐次坐标为((x,y,z,1))
  • 齐次坐标的 目的:避免了平移变换使用矩阵加法运算,是为了规范化编程。

[ \left [\begin{matrix} x^\\ y^ \ 1 \end{matrix}\right ]= \left [\begin{matrix} x+T_x \ y+T_y \ 1 \end{matrix}\right ]= \left [\begin{matrix} 1 & 0 & T_x \ 0 & 1 & T_y \ 0 & 0 &1 \end{matrix}\right ] \left [\begin{matrix} x \ y \ 1 \end{matrix}\right ] ]

[ \left [\begin{matrix} x^\\ y^ \ 1 \end{matrix}\right ]= \left [\begin{matrix} xS_x \ yS_y \ 1 \end{matrix}\right ]= \left [\begin{matrix} S_x & 0 & 0 \ 0 & S_y & 0 \ 0 & 0 & 1 \end{matrix}\right ] \left [\begin{matrix} x \ y \ 1 \end{matrix}\right ] ]

[ \left [\begin{matrix} x^\\ y^ \ 1 \end{matrix}\right ]= \left [\begin{matrix} xcos\beta-ysin\beta \ xsin\beta+ycos\beta \ 1 \end{matrix}\right ]= \left [\begin{matrix} cos\beta & -sin\beta &0 \ sin\beta & cos\beta & 0 \ 0 & 0 & 1 \end{matrix}\right ] \left [\begin{matrix} x \ y \ 1 \end{matrix}\right ] ]

三维变换

[ T= \left [ \begin{matrix} a & b & c & l \ d & e & f & m \ g & h & i & n \ p & q & r & s \end{matrix} \right] ]

其中:

  • 比例、旋转、反射、错切变换:

[ T_1= \left[\begin{matrix} a & b & c \ d & e & f \ g & h & i \end{matrix}\right] ]

  • 比例变换

[ T= \left [ \begin{matrix} S_x & 0 & 0 & 0 \ 0 & S_y & 0 & 0 \ 0 & 0 & S_z & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

  • 旋转变换

[R_{xyz}(\beta ,\alpha ,\gamma)=R_x(\beta )R_y(\alpha )R_z(\gamma) ]

绕x轴旋转变换

[ T= \left [ \begin{matrix} 1 & 0 & 0 & 0 \ 0 & cos\beta & -sin\beta & 0 \ 0 & sin\beta & cos\beta & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

绕y轴旋转变换

[ T= \left [ \begin{matrix} cos\alpha & 0 & sin\alpha & 0 \ 0 & 1 & 0 & 0 \ -sin\alpha & 0 & cos\alpha & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

绕z轴旋转变换

[ T= \left [ \begin{matrix} cos\gamma & -sin\gamma & 0 & 0 \ sin\gamma & cos\gamma & 0 & 0 \ 0 & 0 & 1 & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

  • 旋转变换的性质:(1)旋转变换矩阵是 正交矩阵(R^T_\theta =R^{-1}\theta);(2)(R{- \theta}=R^{-1}_\theta)
  • 反射变换

[]

关于x轴的反射

[ T= \left [ \begin{matrix} 1 & 0 & 0 & 0 \ 0 & -1 & 0 & 0 \ 0 & 0 & -1 & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

关于y轴的反射

[ T= \left [ \begin{matrix} -1 & 0 & 0 & 0 \ 0 & 1 & 0 & 0 \ 0 & 0 & -1 & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

关于z轴的反射

[ T= \left [ \begin{matrix} -1 & 0 & 0 & 0 \ 0 & -1 & 0 & 0 \ 0 & 0 & 1 & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

  • 错切变换

[]

沿x方向错切

[ T= \left [ \begin{matrix} 1 & b & c & 0 \ 0 & 1 & 0 & 0 \ 0 & 0 & 1 & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

沿y方向错切

[ T= \left [ \begin{matrix} 1 & 0 & 0 & 0 \ d & 1 & f & 0 \ 0 & 0 & 1 & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

沿z方向错切

[ T= \left [ \begin{matrix} 1 & 0 & 0 & 0 \ 0 & 1 & 0 & 0 \ g & h & 1 & 0 \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

  • 平移变换:

[ T_2= \left[\begin{matrix} l \ m \ n \end{matrix}\right] ]

[ T= \left [ \begin{matrix} 1 & 0 & 0 & T_x\ 0 & 1 & 0 & T_y \ 0 & 0 & 1 & T_z \ 0 & 0 & 0 & 1 \end{matrix} \right] ]

  • 投影变换:

[ T_3= \left[\begin{matrix} p & q & r \end{matrix}\right] ]

  • 复杂的变换可以由简单变换组合得到
  • 变换的顺序很重要,因为矩阵乘法不支持交换律,比如先旋转再平移与先平移再旋转的结果往往是不同的 (变换顺序,从右向左看)

[先旋转R,再平移T ]

[\left[\begin{matrix} x^, \ y^, \ z^, \ 1 \end{matrix}\right] =TR \left[\begin{matrix} x \ y \ z \ 1 \end{matrix}\right] ]

[先平移T,再旋转R ]

[\left[\begin{matrix} x^, \ y^, \ z^, \ 1 \end{matrix}\right] =RT \left[\begin{matrix} x \ y \ z \ 1 \end{matrix}\right] ]

  • 对于如下变换,是 *先做线性变换,再平移

[T=\left[\begin{matrix} a & b & c & t_x \ d & e & f & t_y \ g & h & i & t_z \ 0 & 0 & 0 & 1 \end{matrix}\right] ]

  • 相对特定点(C)的旋转:先整体平移到坐标原点,再旋转变换,最后再整体移动到原坐标点

[T(C)R(\alpha )T(-C) ]

Original: https://www.cnblogs.com/brilliantM/p/14782171.html
Author: 帅气无敌朋子
Title: 二维与三维坐标变换

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685397/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 安卓NFC读卡DEMO

    设计文档 简介 这个APP的功能是使用手机的NFC读卡器功能,做到读取卡片支持M1卡和CPU卡。 功能列表 基本功能 读卡唯一号 读卡SAK(可以判断卡类型 08 M1卡 28 复…

    技术杂谈 2023年5月31日
    090
  • 【微信公众号】对接公众号别忘了配置域名权限

    在开发我的唯一客服系统的时候,增加了对接公众号的功能 需要在下面设置里,增加上域名权限 设置与开发===> 公众号设置 ===> 功能设置 ===>各种域名添加,…

    技术杂谈 2023年6月1日
    0115
  • LeetCode2.两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新…

    技术杂谈 2023年7月24日
    056
  • 支持JDK19虚拟线程的web框架,之一:体验

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于虚拟线程 随着JDK19 GA…

    技术杂谈 2023年7月11日
    085
  • JAVA8-Lambda-(sorted+Comparator)排序

    使用场景:排队的时候按照个子大小排队 使用API 排序和MySql中的升序降序规则一样。 在排序时需要注意的是降序需要用到reversed(); public static voi…

    技术杂谈 2023年7月24日
    064
  • 在Visual Code中安装对应的工具

    1.打开visual code的扩展管理,查找yarn 安装默认找到的第一个 image.png 安装完之后 点击 重新加载 2.快捷键 ctrl+shift+p打开命令面板 或者…

    技术杂谈 2023年5月31日
    089
  • 一图学Python

    网上有这样一张图片,信息量很大,通常会被配上标题”一张图让你学会Python“: 这张图流传甚广,但我没有找到明确的出处,图片上附带了 UliPad 的作者…

    技术杂谈 2023年7月25日
    0108
  • owin 中间件 katana 如何解密cookie

    .NET MVC5 默认的用户登录组件是AspNet.Identity ,支持owin,并且微软自己实现的一套owin 中间件叫 katana 补充一下 katana项目源码地址:…

    技术杂谈 2023年6月21日
    0100
  • OS第三章错题

    OS第三章错题 ​ 现在看不知道当时为啥做错了…… ​ 这个题要做对,就要分清楚作业和进程不同的状态。作业有收容、运行、完成三种状态。其中在运行时,作业内的…

    技术杂谈 2023年7月11日
    062
  • Keka for Mac(mac压缩解压软件)中文版

    Original: https://www.cnblogs.com/123ccy/p/16551434.htmlAuthor: -Mac123-Title: Keka for Ma…

    技术杂谈 2023年5月31日
    088
  • 手把手教你:基于深度残差网络(ResNet)的水果分类识别系统

    系列文章 手把手教你:图像识别的垃圾分类系统 手把手教你:人脸识别考勤系统 手把手教你:基于粒子群优化算法(PSO)优化卷积神经网络(CNN)的文本分类 @ 系列文章 一、项目简介…

    技术杂谈 2023年7月25日
    094
  • OpenSSL命令—pkcs7

    用途: 用于处理DER或者PEM格式的pkcs#7文件。 用法: openssl pkcs7 [-inform PEM|DER] [-outform PEM|DER] [-in f…

    技术杂谈 2023年5月31日
    076
  • PyTorch 介绍 | TRANSFORMS

    数据并不总是满足机器学习算法所需的格式。我们使用 transform对数据进行一些操作,使得其能适用于训练。 所有的TorchVision数据集都有两个参数,用以接受包含trans…

    技术杂谈 2023年7月25日
    073
  • 线段树建造

    1、由于二叉树的自身特性,对于每个父亲节点的编号 i,他的两个儿子的编号分别是 2i 和 2i+1,所以我们考虑写两个 O(1) 的取儿子函数: inline int ls(int…

    技术杂谈 2023年7月11日
    062
  • js前端-登录js脚本

    html部分 登录 登录 js部分 js文件开头用分号”;”的原因:为了多个JS文件合并压缩的时候防止文件之间没有;分隔导致错误 ; let user_lo…

    技术杂谈 2023年6月21日
    0113
  • EasyExcel的基本使用

    官方网址:https://www.yuque.com/easyexcel/doc/easyexcel 应用场景 数据导入:减少录入工作量 数据导出:统计信息归档 数据传输:异构系统…

    技术杂谈 2023年6月21日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球