美文网首页
计算机图形学坐标变换

计算机图形学坐标变换

作者: 雨诺寒雪 | 来源:发表于2017-09-10 16:10 被阅读0次

先附上原文链接:
https://www.zybuluo.com/yuyujunjun/note/879480
由于简书对数学公式的兼容性不那么好,还是请移步到原文去看。


比例变换

沿坐标轴变换: 乘对应对角矩阵即可

沿任意坐标变换:

  • 首先将其变换到标准坐标系中:

      乘该坐标系的逆矩阵,如果是该坐标系正交,则其逆矩阵为其转置矩阵,如何求逆矩阵,详见我另一篇博客。
    
  • 乘以对角矩阵施加变换

  • 再乘以该坐标系变换回来

旋转变换

对于二维向量:

< x,y >变成 <-y,x> 即可求出其旋转90度的向量,和原始向量构成一组基可求的与原始向量成任意角度的新向量。

对于三维向量:

矩阵方法:(假设向量皆为单位向量)

将原始向量P绕任意轴A旋转任意角度:

  1. 首先沿着该轴将向量分解为沿轴的分量Y和垂直轴的分量C,因为平行于轴的分量在旋转过程中不变,我们只用考虑垂直轴的分量C:
    $$Y:(A \cdot P)A $$
    $$ C: P - Y $$
  2. 计算得到垂直A且包含C的平面,则可以在该平面内做二维旋转变换
  3. 将旋转后的向量加上Y即得到最后结果
    $$P'=Pcos\theta + (A \times P)sin \theta + A(A \cdot P)(1 - cos \theta) $$

四元数方法:

四元数介绍:

$q=<w,x,y,z>=w + xi+yj+zk$ 或者 $q=s+\textbf{v}$
$\bar{q}=s-\textbf{v}$
$q_1q_2=s_1s_2-\textbf{$v_1$}\textbf{$v_2$}+s_1\textbf{$v_2$}+s_2\textbf{$v_1$}+\textbf{$v_1$}\textbf{$v_2$}$

旋转相当于将原始的一个角经过一个函数变换,使之长度、角度、手相性不变。
长度不变:$$length(F(P))=length(P)$$
角度不变:$$F(P_1) \cdot F(P_2) = P_1 \cdot P_2$$
手相性不变:$$F(P_1) \times F(P_2) = F (P_1 \times P_2)$$
对于这样的F,我们有$F(P)=qPq^{-1}$,其中q为非零的四元数
$\textbf{note:}$ 任意标量a,乘以q,得到的 aq 和 q 执行的是相同的旋转操作。
最后结论:绕A轴进行旋转,相当于$$q=cos\frac{\theta}{2}+Asin\frac{\theta}{2}$$的上述函数运算。

平移操作

将点P从一个坐标系变换到另一个坐标系的表达式为:$$ P'=MP+T $$

具体操作:

$$F=
\left{
\begin{matrix}
&M&T\
&0&1
\end{matrix}
\right}
$$
将$P$扩充为$<P_x,P_y,P_z,1>$

实际应用中:

平移变换中,表示点的向量将会发生变化,但是表示方向的向量不变。
所以在进行变化过程中,表示点的向量的$w$分量设为1,但是表示方向向量的$w$分量设置为0,则可以统一变化。

$\textbf{note:$w$的几何意义——投影}$

  • $\bar{P}=<\frac{x}{w},\frac{y}{w},\frac{z}{w}>$表示P向量与$w=1$平面的交点。
  • 给四维向量P乘以任何比例系数,都对应三维空间的相同点。

除了点之外的变换

前面已经提到对于方向向量的平移该如何变换,旋转和缩放方向向量和普通点的变换类似。
这里讲点的切向量和法向量的变换。

切向量

切向量可以通过两个顶点向量之间的差获得,因此可以用变换后的两个定点作差得到,在变换过程中,可以用相同矩阵进行变化。(如果是4维,应向方向向量一样扩充得到)

法向量

变换后的法向量常常指向一个与变换表面不垂直的方向。
但是切向量和法向量内积的值是一定等于0的。已知初始切向量法向量,变换后的切向量,我们可以得到变换后的法向量。
$N\cdot T=N'\cdot T'=(GN)\cdot (MT) =0$
其中M是一般点的变换矩阵,G是我们需要求的法向量的变换矩阵。
$N\cdot T=N^TT$
$(GN)\cdot (MT)=(GN)T(MT)=NTG^TMT=0$
所以只需要$GTM=I$即可,所以$G=(M{-1})^T$,如果M是正交矩阵,则$G=M$。

相关文章

  • 三维场景的坐标变换

    计算机图形学第七章三维观察1.建模坐标MC经过建模变换:将模型放置在场景中,模型的坐标变换为场景内的坐标2.世界坐...

  • 计算机图形学坐标变换

    先附上原文链接:https://www.zybuluo.com/yuyujunjun/note/879480由于简...

  • 用矩阵表述变换与齐次坐标

    一、线性变换与仿射变换的概念 我们知道在计算机图形学中,变换通常包含线性变换、仿射变换、透视变换等。并且,我们用4...

  • 透视投影

    “齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。...

  • 图形学 坐标系空间变换

    3D物体从三维坐标映射到2D屏幕上,要经过一系列的坐标系变换,这些坐标系如下: model物体本身(local)的...

  • 计算机图形学基础重点

    计算机图形学基础重点 计算机图形学的定义:  计算机图形学(CG)是研究怎样利用计算机来显示、生成和处理图形的原理...

  • 计算机图形学

    计算机图形学

    介绍 计算机图形学(Computer Graphics,...

  • OpenGL基础之三维理论基础

    计算机图形学是研究用计算机及其图形设备来输入、表示、变换、运算和输出图形的原理、算法及系统的一门学科。 学习目标 ...

  • 计算机图形学——001概论

    001.概论 内容:计算机图形学的概念、发展历程和应用 001.1 计算机图形学的研究内容 什么是计算机图形学(C...

  • 计算机图形学二:变换

    一.仿射变换 1.模型变换2.视图变换 理解变换表达成矩阵:1.左边一张图,图上任一点都可以表达成[x,y]的两行...

网友评论

      本文标题:计算机图形学坐标变换

      本文链接:https://www.haomeiwen.com/subject/hvozjxtx.html