• 从单个/两个向量构建一组正交基底


    来自《Fundamentals of computer graphic》2.4.6 和 2.4.7。

    从单个向量构造基底

    我们经常需要一组与某个给定向量对齐的正交基底。
    即,给定一个向量 a \mathbf{a} a,我们需要一组正交向量 u , v , w \mathbf{u},\mathbf{v},\mathbf{w} u,v,w
    其中 w \mathbf{w} w a \mathbf{a} a有相同的方向,但是我们不关心 u , v \mathbf{u},\mathbf{v} u,v具体是什么。一个向量不足以唯一地确定基底,我们只是需要一种鲁棒的机制来找到其中任意一种可能基底。
     
    首先,使得 w \mathbf{w} w a \mathbf{a} a 方向上的一个单位向量:
    w = a ∥ a ∥ \mathbf{w}=\frac{\mathbf{a}}{\| \mathbf{a} \|} w=aa
    然后,选取同 w \mathbf{w} w 不共线的任意一个向量 t \mathbf{t} t,如下构建一个正交于向量 w \mathbf{w} w 的单位向量 u \mathbf{u} u:
    u = t × w ∥ t × w ∥ \mathbf{u} = \frac{\mathbf{t} \times \mathbf{w}}{ \|\mathbf{t} \times \mathbf{w}\| } u=t×wt×w

    叉积交换顺序也可以,但是需要确定得到的基底是右手坐标系。

    如果 t \mathbf{t} t w \mathbf{w} w共线或者接近共线,结果都不准确。
    一个简单的机制是从 w \mathbf{w} w 开始构造 t \mathbf{t} t,首先令 t \mathbf{t} t 等于 w \mathbf{w} w,然后将其分量中绝对值最小的分量改为 1。
    举个例子,如果 w = ( 1 / 2 , − 1 / 2 , 0 ) \mathbf{w} =(1/\sqrt{2},-1/\sqrt{2},0) w=(1/2 ,1/2 ,0),那么, t = ( 1 / 2 , − 1 / 2 , 1 ) \mathbf{t} =(1/\sqrt{2},-1/\sqrt{2},1) t=(1/2 ,1/2 ,1)
    在知道 w \mathbf{w} w u \mathbf{u} u后,
    v = w × u \mathbf{v} = \mathbf{w} \times \mathbf{u} v=w×u
    使用这种构造方法的一个场景是表面上色。一组和表面法线对齐的基底是需要的,但是关于发现的旋转是不重要的。

    从两个向量构造基底

    一个常见的例子是为一个相机构造一组基底;沿着相机看的方向有一个对齐的向量是重要的,但是围绕这个向量的旋转并不是任意的,而且这需要以某种方式指定。一旦确定了旋转,这组基底就完全决定了。
    完全指定一帧的方法是通过提供两个向量 a \mathbf{a} a(指定 w \mathbf{w} w)和 b \mathbf{b} b(指定 v \mathbf{v} v)。如果这两个向量是正交的,那么构造第三个向量的简单的方法是通过 u = b × a \mathbf{u}=\mathbf{b} \times \mathbf{a} u=b×a

    u = a × b \mathbf{u}=\mathbf{a} \times \mathbf{b} u=a×b 也是构造一组正交基,但是这是左手坐标系。

    为了得到正交基底,即使输入的向量不正交,我们需要如下操作:
    w = a ∥ a ∥ \mathbf{w} = \frac{\mathbf{a}}{\| \mathbf{a}\|} w=aa
    u = b × w ∥ b × w ∥ \mathbf{u} = \frac{\mathbf{b} \times \mathbf{w}}{ \|\mathbf{b} \times \mathbf{w}\| } u=b×wb×w
    v = w × u \mathbf{v} = \mathbf{w} \times \mathbf{u} v=w×u
    如果 a \mathbf{a} a b \mathbf{b} b平行,上述方法失效。在这种情况下, b \mathbf{b} b对于选择我们应该使用的与 a \mathbf{a} a 正交的方向没有帮助。

    在指定摄像机位置的例子中(本书 Section 4.3),我们想要构造一个帧:拥有平行于摄像机所观察的方向 w \mathbf{w} w,并且 v \mathbf{v} v应该指向摄像机的顶部。

  • 相关阅读:
    深入解析PostgreSQL:命令和语法详解及使用指南
    微信小程序查缺补漏
    【多线程】CountDownLatch
    tracy 学习
    详解Volatile关键字
    『力扣每日一题16』:存在重复元素
    【Push Kit】关于推送消息没有锁屏通知的问题
    AWS考试认证学习
    遗传算法bp神经网络原理,bp神经网络 遗传算法
    win11无损关闭系统更新
  • 原文地址:https://blog.csdn.net/OrdinaryMatthew/article/details/126101653