3D空间表征基础

本文所指三维空间中的表征默认是在一组单位正交基构成的右手系下所进行的欧氏变换。欧氏变换(刚性变换):改变物体的空间位置,不改变形状、大小,包括旋转变换和平移变换。

向量表征和基本运算

空间中的点/向量可以表征为a⃗=e⃗1,e⃗2,e⃗3a1,a2,a3T\vec a=\\vec e_1, \\vec e_2, \\vec e_3a_1, a_2, a_3^Ta =e 1,e 2,e 3a1,a2,a3T

向量点积
a⃗⋅b⃗=a⃗Tb⃗=∑i=13aibi=∣a⃗∣∣b⃗∣cos<a⃗,b⃗>\vec a \cdot \vec b =\vec a^T \vec b = \sum_{i=1}^{3}{a_i b_i} = |\vec a||\vec b|cos<\vec a, \vec b>a ⋅b =a Tb =∑i=13aibi=∣a ∣∣b ∣cos<a ,b >

向量叉积
a⃗×b⃗=∥e⃗1e⃗2e⃗3a1a2a3b1b2b3∥=a⃗ ˆ b⃗\vec a \times \vec b = {\begin{Vmatrix} \vec e_1 & \vec e_2 & \vec e_3 \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \end{Vmatrix}} = \vec a \ \^{} \ \vec ba ×b = e 1a1b1e 2a2b2e 3a3b3 =a ˆ b , a⃗ ˆ\vec a \ \^{}a ˆ是用a⃗\vec aa 构建的一个反对称矩阵,对角线上元素从左到右从上到下依次为−a3,a2,−a1-a_3, a_2, -a_1−a3,a2,−a1。

刚体运动可以用欧式变换来表征,尺度、各个面的角度等性质不会变。欧氏变换包括旋转和平移

旋转变换

给定两组单位正交基e⃗1,e⃗2,e⃗3,e⃗1′,e⃗2′,e⃗3′\\vec e_1, \\vec e_2, \\vec e_3, \\vec e_1', \\vec e_2', \\vec e_3'e 1,e 2,e 3,e 1′,e 2′,e 3′,表征了两个原点重合的坐标系。

同一向量在两组基下的表征分别为e⃗1,e⃗2,e⃗3a1,a2,a3T=e⃗1′,e⃗2′,e⃗3′a1′,a2′,a3′T\\vec e_1, \\vec e_2, \\vec e_3a_1, a_2, a_3^T = \\vec e_1', \\vec e_2', \\vec e_3'a_1', a_2', a_3'^Te 1,e 2,e 3a1,a2,a3T=e 1′,e 2′,e 3′a1′,a2′,a3′T,式两边同时左乘e⃗1,e⃗2,e⃗3T\\vec e_1, \\vec e_2, \\vec e_3^Te 1,e 2,e 3T可以自然得到旋转矩阵表征,矩阵R\bold RR表征了从坐标系2到坐标系1的旋转变换。由于是单位正交基,等式左边前面左乘的结果为单位矩阵,等式右边矩阵的结果
R=e1Te1′e1Te2′e1Te3′e2Te1′e2Te2′e2Te3′e3Te1′e3Te2′e3Te3′ \bold R=\begin{bmatrix} e_1^Te_1' & e_1^Te_2' & e_1^Te_3' \\ e_2^Te_1' & e_2^Te_2' & e_2^Te_3' \\ e_3^Te_1' & e_3^Te_2' & e_3^Te_3' \end{bmatrix} R= e1Te1′e2Te1′e3Te1′e1Te2′e2Te2′e3Te2′e1Te3′e2Te3′e3Te3′

由于是两组单位正交基,得到的结果为各轴之间的夹角,并且det(R)=1det(\bold R) = 1det(R)=1。

要反过来得到R−1\bold R^{-1}R−1,只需要对原式两边左乘e⃗1′,e⃗2′,e⃗3′T\\vec e_1', \\vec e_2', \\vec e_3'^Te 1′,e 2′,e 3′T,得到e⃗1′,e⃗2′,e⃗3′Te⃗1,e⃗2,e⃗3=RT\\vec e_1', \\vec e_2', \\vec e_3'^T \\vec e_1, \\vec e_2, \\vec e_3 = \bold R^Te 1′,e 2′,e 3′Te 1,e 2,e 3=RT,故旋转矩阵R\bold RR为正交矩阵。

旋转矩阵所在的集合为特殊正交群
SO(n)={R∈∣RRT=I,det(R)=1}SO(n) = \{R\in|\bold R\bold R^T = \bold I, det(\bold R) = 1\}SO(n)={R∈∣RRT=I,det(R)=1}

平移变换

两个不重合的坐标系,在坐标系1下坐标系1到坐标系2原点的向量为t12t_{12}t12,坐标系2到坐标系1的旋转变换为R12R_{12}R12,则
a1=R12a12+t12a_{1} = \bold R_{12}a_{12}+\bold t_{12}a1=R12a12+t12

扩展为齐次坐标的四维向量,则变换矩阵可以表征为
T=Rt01,R∈R3×3,t∈R3 T=\begin{bmatrix} \bold R & \bold t \\ \bold 0 & 1 \\ \end{bmatrix}, \bold R \in \mathbb{R}^{3\times 3}, \bold t \in \mathbb{R}^3 T=R0t1,R∈R3×3,t∈R3

变换a1=Ta2\bold a_1 = \bold T \bold a_2a1=Ta2
T\bold TT所在的集合为特殊欧式群SE(3)SE(3)SE(3)

相关推荐
学习星球2 小时前
AI 一句话生成 3D 游戏世界:腾讯 HY-World 2.0 开源深度解析与本地实战
开发语言·人工智能·游戏·3d·ai·课程设计·ai编程
ai小陈16 小时前
Hunyuan3D-2云端部署实战:图生3D、文生3D怎么跑更稳
人工智能·科技·3d·ai·音视频·gpu算力
独立开发之道1 天前
Three.js 创建 VR 内容:四步把一个普通 3D 场景送进头显
javascript·3d·vr
k4m7v2pz2 天前
Bevy 0.18.1 雨雪天气粒子系统排障实录:四个“想当然“如何让 3D/2D 粒子全部不可见
3d·游戏开发·3d渲染·bevy·天气粒子·2d渲染
戴西软件2 天前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d
Jmyd01232 天前
实训室的 3D 模型涉及肖像文物,数据安全与合规怎么做?
安全·3d·数据安全·虚拟实训
AI视觉网奇2 天前
3d子部件高亮选中
开发语言·javascript·3d
我才是银古2 天前
当 360° 全景遇上真实地图:Vue 3 实现全景-地图双向联动的工程实践
3d·vue3·360影像
做cv的小昊3 天前
结合代码读3DGS&世界模型论文(3)——3DGS & 世界模型新工作GaussianDream论文及代码解读
3d
lilian2334 天前
HarmonyOS 7 新特性(十三)|3DGS 模型加载、交互与性能回退
3d·交互·harmonyos