图形几何之美系列:仿射变换矩阵(二)

 在几何计算、图形渲染、动画、游戏开发等领域,常需要进行元素的平移、旋转、缩放等操作,一种广泛应用且简便的方法是使用仿射变换进行处理。相关的概念还有欧拉角、四元数等,四元数在图形学中主要用于解决旋转问题,特别是在三维空间中绕任意轴的旋转,且四元数与仿射变换可以相互转换。

上一篇我们介绍了仿射变换矩阵原理、构成和转换:图形几何之美系列:仿射变换矩阵。

本篇我们继续进行探索,包括左乘还是右乘左手/右手坐标系先转后偏等内容。

1. 左乘还是右乘

    通过前文(图形几何之美系列:仿射变换矩阵)办法构造的仿射变换矩阵作用于点和向量时是左乘,且如果有多次姿态变换时,需要依次将对应的仿射变换矩阵左乘于点或向量。

    如物体Object依次经过旋转、偏移、绕点P缩放姿态变换,对应的仿射变换矩阵分别为TrsRotate、TrsTrans、TrsScaleBaseP,其数学表达如下,

图片
图:左乘

    可以右乘吗?在把点或向量看作1X4矩阵时,可以右乘4X4的仿射变换矩阵吗?答案是可以,但需要更改4X4矩阵的构造,对其进行转置。

1. 一般我们不采用右乘的方案,你可以简单的认为是业界如此,需要制定清晰和明确的规则,方便大家学习和执行。
2. 就像在世界各国汽车要靠右侧或左侧行驶一样,需要制定明确清晰的规则,方便大家学习和遵守,如果都可以,那道路将无法畅通。

2. 右手坐标系&左手坐标系

    仿射变换矩阵和左手或右手坐标系有关系吗?或者只能应用于右手坐标系吗?
仿射变换矩阵和左右手坐标系没有关联关系,其应用也没有局限于此,甚至可以将左手坐标系的物体转换为右手坐标系下的度量,只要你愿意。

提示
1. 通过修改4X4矩阵中左上角的3个列向量即可进行左右手坐标系间的转换,比如当左手坐标系相对于目标右手坐标系仅存在X轴方向反向时,可以将X轴基向量baseX取反即可得到到目标右手坐标系的仿射变换矩阵。
2. 这其实和局部坐标系转为世界坐标系是类似的,可以认为左手坐标系是局部坐标系,而目标右手坐标系是世界坐标系。
3. 即使实际情况比较复杂,也可以基于上述章节中仿射变换矩阵构成和原理进行矩阵的构造。
4. 镜像变换也是类似的原理。

3. 先转后偏

        如果一次变换中存在多种类型的姿态变换,需要先构造矩阵左上角的3X3部分(缩放、旋转、镜像、非均匀变换),最后再叠加偏移。

如果先偏移,则需要基于偏移值的坐标点进行矩阵左上角3X3部分的构造,这将变得复杂的多,这对于大多数人来说不可接受,毕竟我们很多时候要做的是化繁为简,同时提高精度。

图片
图:先转后偏

 

    如上图所示,我们对点P进行仿射变换,同时包含旋转和平移,即绕点T旋转Θ,然后平移向量P'P''

如果是先旋转后偏移:(1)P绕T旋转θ;(2)移动P'P'';即可得到最终姿态P''。

补充
构造P绕T旋转θ的仿射变换矩阵时:

  1. 可以先构造偏移TO的偏移矩阵(这样T偏移到了原点,而P可以绕原点旋转了)TrsT2O;

  2. 然后构造P绕原点旋转θ的3X3矩阵,再叠加OT偏移得到TrsRotate_and_O2T;嘿嘿,这又是一个先转后偏的实践。

  3. 左乘上述两个矩阵得到结果矩阵:TrsRotate_and_O2T x TrsT2O

    如果是先偏后转,问题将变得复杂,在偏移P的同时需要对T也作相同力度的偏移,没错,进行“先偏”操作时,你需要关心其他姿态变换元素,如“绕T旋转的元素T”;然后再绕T'点旋转θ。

图片
图:先偏后转

    记住,我们是要化繁为简,以清晰便捷的过程去处理问题,这会降低错误的发生,也降低了学习成本,提高学习工作体验。

谁不愿意开心的学习和工作呢?对,还有开心的生活~

    注意,如果同时有旋转、缩放、镜像、不均匀变换时(如透视投影)时,这几种姿态变换没有先后顺序的要求,你可以先转后缩,也可以先缩后转。想一想4x4矩阵的构造,这几种类型都是左上角3x3部分,该部分3列实际上是三个基向量。

欢迎关注,图形几何之美系列 将继续更新......

  1. 图形几何之美系列:三维实体结构表达

  2. 图形几何之美系列:仿射变换矩阵

  3. 图形几何之美系列:仿射变换矩阵(二)

4.写在后面

图形几何、数据处理、并行计算相关研究和研发,公众号:geometrylib,欢迎交流。

 

_________哈市雪花__________

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/912998.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python识别ocr 图片和pdf文件

#识别图片 pip3 install paddleocr pip3 install paddlepaddle#识别pdf pip3 install PyMuPDF 重点:路径不能有中文,不然pdf文件访问不了 from paddleocr import PaddleOCR from rest_framework.response import Response from rest_framework.views im…

使用Ubuntu快速部署MinIO对象存储

想拥有自己的私有云存储,安全可靠又高效?MinIO是你的理想选择!这篇文章将手把手教你如何在Ubuntu 22.04服务器上部署MinIO,并使用Nginx反向代理和Let’s Encrypt证书进行安全加固。 即使你是新手,也能轻松完成&#xf…

EasyUI弹出框行编辑,通过下拉框实现内容联动

EasyUI弹出框行编辑,通过下拉框实现内容联动 需求 实现用户支付方式配置,当弹出框加载出来的时候,显示用户现有的支付方式,datagrid的第一列为conbobox,下来选择之后实现后面的数据直接填充; 点击新增:新…

【神经科学学习笔记】基于分层嵌套谱分割(Nested Spectral Partition)模型分析大脑网络整合与分离的学习总结

一、前言 1.学习背景 最近在学习脑网络分析方法时,笔者偶然读到了一篇发表在Physical Review Letters上的文章,文章介绍了一种名为嵌套谱分割(Nested-Spectral Partition, NSP)的方法,用于研究大脑功能网络的分离和整合特性。 传统的脑网络分…

如何优雅处理异常?处理异常的原则

前言 在我们日常工作中,经常会遇到一些异常,比如:NullPointerException、NumberFormatException、ClassCastException等等。 那么问题来了,我们该如何处理异常,让代码变得更优雅呢? 1 不要忽略异常 不知…

海量数据迁移:Elasticsearch到OpenSearch的无缝迁移策略与实践

文章目录 一.迁移背景二.迁移分析三.方案制定3.1 使用工具迁移3.2 脚本迁移 四.方案建议 一.迁移背景 目前有两个es集群,版本为5.2.2和7.16.0,总数据量为700T。迁移过程需要不停服务迁移&#…

macOS开发环境配置与应用开发(详细讲解)

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 macOS作为Apple公司推出的桌面操作系统,以其稳定性、优雅的用户界面和强大的开发工具吸引了大量开发者。对于…

【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法

【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法 【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法 文章目录 【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和…

前端学习之ES6+

1.ES6是什么 ES6,全称是ECMAScript 6,是JavaScript语言的下一代标准,由ECMA国际组织在2015年6月正式发布。ES6也被称作ECMAScript 2015,从这个版本开始,ECMA组织决定每年发布一个新的ECMAScript版本,以使J…

查缺补漏----用户上网过程(HTTP,DNS与ARP)

(1)HTTP 来自湖科大计算机网络微课堂: ① HTTP/1.0采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接当收到响应后就立即关闭连接。 每请求一个文档就要有两倍的RTT的开销。若一个网页上有很多引…

【广西】《广西壮族自治区本级政务信息化建设和运维项目预算支出标准》(桂财建〔2023〕102号)-省市费用标准解读系列09

《广西壮族自治区本级政务信息化建设和运维项目预算支出标准》(桂财建〔2023〕102号)是广西壮族自治区财政厅于2023年9月26日发布的费用标准(了解更多可直接关注我们咨询)。我司基于专业第三方信息化项目造价机构角度,…

Linux基础-常用操作命令详讲

Linux基础-常用操作命令详讲 一、openssl加密简单介绍 1. 生成加密的密码散列(password hash)​编辑 1.1 常见的选项总结表 1.2 加密参数详解 2. 自签名证书 3. 证书转换 二、文件管理 1. 创建空文件 ​编辑 2. 删除文件 4. 新建目录 ​编辑…

ALB搭建

ALB: 多级分发、消除单点故障提升应用系统的可用性(健康检查)。 海量微服务间的高效API通信。 自带DDoS防护,集成Web应用防火墙 配置: 1.创建ECS实例 2.搭建应用 此处安装的LNMP 3.创建应用型负载均衡ALB实例 需要创建服务关联角…

C语言笔记(字符串函数,字符函数,内存函数)

目录 前言 1.字符串函数 1.1.strlen 1.2.strcpy 1.3.strcat 1.4.strcmp 1.5.strncpy 1.6.strncat 1.7.strncmp 1.8.strstr 1.9.strtok 1.10.strerror 2.字符函数 2.1字符分类函数 2.2字符转换函数 3.内存函数 3.1.mencpy 3.2.memmove 3.3.memcmp 前言 本文重…

HCIP-HarmonyOS Application Developer V1.0 笔记(五)

弹窗功能 prompt模块来调用系统弹窗API进行弹窗制作。 当前支持3种弹窗API,分别为: 文本弹窗,prompt.showToast;对话框,prompt.showDialog;操作菜单,prompt.showActionMenu。 要使用弹窗功能&…

Linux相关概念和易错知识点(20)(dentry、分区、挂载)

目录 1.dentry (1)路径缓存的原因 (2)dentry的结构 ①多叉树结构 ②file和dentry之间的联系 ③路径概念存在的意义 2.分区 (1)为什么要确认分区 (2)挂载 ①进入分区 ②被挂…

Redis 缓存击穿

目录 缓存击穿 什么是缓存击穿? 有哪些解决办法? 缓存穿透和缓存击穿有什么区别? 缓存雪崩 什么是缓存雪崩? 有哪些解决办法? 缓存预热如何实现? 缓存雪崩和缓存击穿有什么区别? 如何保…

电信网关配置管理系统 upload_channels.php 文件上传致RCE漏洞复现

0x01 产品简介 中国电信集团有限公司(英文名称“China Telecom”、简称“中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员实现对网关设备的远…

澳鹏通过高质量数据支持 Onfido 优化AI反欺诈功能

“Appen 在 Onfido 的发展中发挥了至关重要的作用,并已成为我们运营的重要组成部分。我们很高兴在 Appen 找到了可靠的合作伙伴。” – Onfido 数据和分析总监 Francois Jehl 简介:利用人工智能和机器学习增强欺诈检测 在当今日益数字化的世界&#xff…

网站架构知识之Ansible模块(day021)

1.Ansible模块 作用:通过ansible模块实现批量管理 2.command模块与shell模块 command模块是ansible默认的模块,适用于执行简单的命令,不支持特殊符号 案列01,批量获取主机名 ansible all -m command -a hostname all表示对主机清单所有组…