• 3D 坐标变换 公式 推导


    [ 更新 ]更好的方法见[用抽象代数讨论仿射变换和仿射空间中的坐标变换] ,以下是之前的内容。


    以下的推导 结论是正确的,可是过程有点懵。


    以下使用行向量:
    e1=(1,0,0)
    e2=(0,1,0)
    e3=(0,0,1)
    i, j, k是三个线性无关的向量。它们在e1,e2,e3坐标系下的坐标也记作i,j,k
    i’, j’, k’是三个线性无关的向量,它们在e1,e2,e3坐标系下的坐标也记作i’, j’, k’



    denoteijk=A,ijk=B

    这里写图片描写叙述

    已知点P相对于Oijk的坐标是(x,y,z)
    则点P相对于O’i’j’k’的坐标:

    (x,y,z)=((x,y,z)A+(OO))B1

    若B是正交矩阵。就不用求逆了,求转置就是。


    特别地,
    若O=(0,0,0),i=e1,j=e2,k=e3,则

    (x,y,z)=((x,y,z)O))B1


    推导

    设点P相对于O’i’j’k’的坐标是(x’,y’,z’)

    P=O+(x,y,z)A=O+(x,y,z)B

    (x,y,z)=((x,y,z)A+(OO))B1


    补充

    B=AM(M=A1B),即M是把i,j,k变换到i’,j’,k’的变换矩阵

    (x,y,z)=((x,y,z)A+(OO))M1A1

    特别地。
    若O=(0,0,0),i=e1,j=e2,k=e3,则
    (x,y,z)=((x,y,z)O))M1andM=B


    应用

    实际应用中,用到的一般都是O=(0,0,0),i=e1,j=e2,k=e3的特殊情况。
    这是由于:问题在描写叙述O’i’j’k’坐标的时候一般都是相对于Oikj而言的;
    这里没有绝对的坐标系,仿射空间中不论什么一个点都看以看成(0,0,…0),随意一组基都能够看成{(1,0,…0), (0,1,…0), (0,0,…1)}。

    (x,y,z,1)[M1OM101]=(x,y,z,1)

    [M1OM101]=[MO01]1

    换个角度理解

    点P不动。把坐标架O,i,j,k变换到O’,i’,j’,k’,则变换矩阵是(MO01), M=B,
    就相当于 坐标架不动,点P逆着上述变换,变换到新坐标。

    变换的两种方式

    ①先原地变换坐标架,再平移坐标架

    [B001][IO01]=[BO01]

    ②先平移坐标架。再相对平移之后的原点变换坐标架
    [IO01]X=[BO01]X=[BOOB01]

    X能够看成先平移回原点,相对原点 原地变换 坐标架,再平移过去:
    X=[BOB01][IO01]

    [BOB01]=[IO01][B001]

    注意到 X 与 [B001] 是类似矩阵,正是同一(4维的)线性变换在不同基下的坐标表示。1

  • 相关阅读:
    Codeforces Round #371 (Div. 1)
    Making the Grade(POJ3666)
    The trip(Uva 11100)
    Codeforces Round #370 (Div. 2) E. Memory and Casinos (数学&&概率&&线段树)
    [CodeForces
    勾股数组 学习笔记
    NOIP 2015 游记
    BestCoder Round #53 (div.1)
    北大信息学夏令营 游记
    Codeforces Round #313 (Div. 1)
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7304961.html
Copyright © 2020-2023  润新知