天天看點

WPF 3D相機基本坐标簡介

基本概念

WPF中3D空間基本坐标系是右手坐标系。

WPF中3D空間的原點是(0,0,0)

WPF 3D相機基本坐标簡介

Position:

   這個參數用來表示相機在空間内的坐标。參數是(X,Y,Z)。當修改相機的這個參數時,這個坐标是根據原點修改。這個概念是最為簡單了解的(綠色方塊為相機)

WPF 3D相機基本坐标簡介

LookDirection:

    這個參數表示相機看的方向。參數同樣也是(X,Y,Z)但注意這個參數的類型是向量。 這個參數有個最基本的算法是 LookDirection=你要看的位置-相機位置。

WPF 3D相機基本坐标簡介

 UpDirection:

   這個參數決定相機頂部的方向,也就是向上方向。這個參數是決定相機的傾斜方向。注意這個參數的坐标是根據自身為原點。 同樣這個參數類型是向量,也是(X,Y,Z)。預設數值是(0,1,0)。

   那麼如何了解這個參數呢?

   首先需要明白,這個UpDirection是指相機在3D坐标系中向量。

WPF 3D相機基本坐标簡介

   向量A的坐标分别是投影在X,Y,Z上的坐标也就是(AX,AY,AZ),

  向量的長度為 根号下(X^2+Y^2+Z^2)

   而向量有方向角公式為

             cos(A)=AX/A的長度                           Ax=A*cos(A)

             cos (B)   =AY/A的長度                           Ay=A*cos(B)

             cos (C)   =AZ/A的長度                           Az=A*cos(C)

 并由恒等式: cos^2(A)+cos^2(B)+cos^2(C)=1

  根據這些公式就可以求出相機的傾斜的角度