2015-06-07 22 views
3

如何看3D模型在WPF的正面?使相機LookDirection看正面

我很困惑爲LookDirection設置X Y Z。

我不知道當我設置xyz時會發生什麼,我不知道相機在哪裏看。 UpDirection我不知道同樣的事情。

下面是我的相機性能:

camera.Position = new Point3D(100, 100, 150); 
camera.LookDirection = new Vector3D(-100, -100, -100); 
camera.UpDirection = new Vector3D(0, 0, 1); 

的問題是,相機從背後看。 模型顯示如下面的多維數據集。

enter image description here

如何使它看上去前臉?

也請解釋如何設置xyz。我知道什麼屬性,但我無法想象他們。

我覺得X是從右到左,Y是深度。 Z正在下降。

回答

8

想象一下,不是攝像頭,而是在3D空間中移動頭部。然後Camera.Position指定您的頭部所在的位置,Camera.LookDirection確定您正在查看的方向,並且Camera.UpDirection顯示頭部的方向。下面的圖片爲你清楚。

在第一圖像,攝像機的中心在+ Z軸低頭-Z軸和你的形狀:

enter image description here

當設置camera.Position到例如(X = 1,Y = 0,Z = 10),則這樣的攝像機位置的變化:

enter image description here

其結果是,攝像機移動一點到右側,因此,你會看到你的形狀在視圖的左側。現在

如果camera.LookDirection得到改變說(X = 0,Y = 1,Z = -1),然後簡單地相機着眼於點(0,1,-1)如下:

enter image description here

camera.UpDirection確定相機頂部指向的位置。在下面的圖片,設置camera.UpDirection在相機逆時針旋轉(-0.5,1,0)結果:

enter image description here

我希望這些照片清晰的東西給你。

+0

我將它標記爲答案,因爲它有很好的圖片。但是根據你的解釋,生病時試圖設置相機位置。謝謝 –

+1

不客氣。 [本文](http://www.codeproject.com/Articles/23332/WPF-D-Primer),其中包含源代碼以及演示項目也可能有用。 –

+0

我說得對。再次感謝好解釋。我不得不使用RotateTransform3D變換相機,因爲模型是建立在不同的軸上。 '攝像頭。Transform = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1,0,0),90));'如果沒有這個,我永遠無法理解它!謝謝! –