WPF 3D相機基本座標簡介

2022-01-12 07:00:33 字數 1023 閱讀 4526

基本概念

wpf中3d空間基本座標系是右手座標系。

wpf中3d空間的原點是(0,0,0)

position:

這個引數用來表示相機在空間內的座標。引數是(x,y,z)。當修改相機的這個引數時,這個座標是根據原點修改。這個概念是最為簡單理解的(綠色方塊為相機)

lookdirection:

這個引數表示相機看的方向。引數同樣也是(x,y,z)但注意這個引數的型別是向量。 這個引數有個最基本的演算法是 lookdirection=你要看的位置-相機位置。

這個引數決定相機頂部的方向,也就是向上方向。這個引數是決定相機的傾斜方向。注意這個引數的座標是根據自身為原點。 同樣這個引數型別是向量,也是(x,y,z)。預設數值是(0,1,0)。

那麼如何理解這個引數呢?

首先需要明白,這個updirection是指相機在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

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

WPF 3D開發教程(一)

我們知道,在2d平面繪圖時,wpf使用的座標系 其實計算機上的圖形處理一般都是這樣 是以螢幕左上角為原點,向右為x軸正方向,向下為y軸正方向。而wpf的3d座標系,取區域中心為原點,向右為x軸正方向,向上為y軸正方向,z軸正方向垂直於螢幕指向我們。這是乙個右手系,讀者可以伸出自己的右手,做下圖所示動...

WPF 3D開發教程(三)

3d模型就是物體,是3d開發中的主角。我們在第一部分提過,使用三角網格法表示面。而三角形由頂點組成,每個面又有一定的材質,這些都是怎麼表示的呢?三角形面由positions和 indices兩個屬性確定,而材質的顯示主要由texturecoordinates和material兩個屬性確定。我們具體解...

Unity3D 相機跟隨抖動

在u3d中當物體移動和相機跟隨的重新整理頻率不同時,常常會出現物體抖動的問題。解決這個問題的最好方法是把相機重新整理放在laterupdate中,能很好解決物體抖動的問題。但是如果相機在跟隨物體一時,畫面同時還有物體二,此時物體一和物體二的重新整理頻率需要保持一致,否則物體二仍然會出現抖動。例子 物...