我試圖教自己關於3D圖形,但是我很難想象涉及的3D矢量。3D圖形:用於可視化3D矢量的軟件?
有什麼好的軟件可以用來可視化3D矢量嗎?
例如,現在我正在學習相機轉換,如果我可以輕鬆地繪製正確/向上/向量/眼睛向量,將會很好。
我試過了Grapher.app和gnuplot,但是很難在Grapher.app中輸入點,而gnuplot似乎無法鎖定長寬比。
我試圖教自己關於3D圖形,但是我很難想象涉及的3D矢量。3D圖形:用於可視化3D矢量的軟件?
有什麼好的軟件可以用來可視化3D矢量嗎?
例如,現在我正在學習相機轉換,如果我可以輕鬆地繪製正確/向上/向量/眼睛向量,將會很好。
我試過了Grapher.app和gnuplot,但是很難在Grapher.app中輸入點,而gnuplot似乎無法鎖定長寬比。
Visual Python是一個超級簡單的三維可視化庫。
例如,爲了顯示一個球體和箭頭:
import time, math, visual
ball = visual.sphere(pos=(0,2,0), radius=1, color=visual.color.red)
vect = visual.arrow(pos=(2,0,0), axis=(2 ,2,-2))
visual.scene.forward = (.1, -.3, -1) # controls the camera view angle
此窗口現在也有所有正常的鼠標交互,諸如縮放和照相機(即視角)的旋轉。
VPython也很容易動畫。例如,下面將旋轉箭頭:
da = 2*math.pi/100
for timestep in range(100):
angle = timestep*da
vect.axis = (2+2*math.sin(angle), 2*math.cos(angle), -2)
time.sleep(.1)
我不知道這是否比Grapher.app或gnuplot更容易,但是您可以編寫自己的3D圖形程序,只繪製矢量圖。
Here's an example in OpenGL繪製X,Y和Z軸向量。
更新:Here's a Java applet特別專注於幫助您可視化攝像機轉換中的矢量。請注意安裝說明:您必須安裝Java 3D。
描述:透視相機 參數小應用程序的目的是熟悉 學生用合成, 透視投影照相機相關聯的各種參數 。用戶 可以調整以下任何參數:視場寬度, 視場高度,近剪輯 平面距離,遠剪裁平面 距離,向上向量和外觀向量。 可視化截屏在 窗口中顯示,允許學生 瞭解參數如何將 與可視截錐的形狀相關聯。
相同的網站有many components, such as axes,你可以用它來設置一個簡單的applet,只顯示你想要的矢量。
嗯...我沒有考慮過(我正在處理非交互式3D圖形),但這不是一個壞主意。謝謝。 – 2010-09-04 01:02:26
@傑,你在和誰說話? – LarsH 2010-09-06 04:33:03
@David Wolever,如果你創建一個應用程序並開放它的源碼,我相信它也會對其他人有所幫助。 – 2010-09-06 12:18:32
真棒 - 看起來非常好。非常感謝。 – 2010-09-06 18:44:07
如果我有更多的問題,我會爲他們開新的問題......但只是運行你到達的地方,我沒有得到任何類型的鼠標交互。我有一些祕密醬嗎? – 2010-09-06 18:48:07
我使用的是Ubuntu Linux中的VPython,並且中間的鼠標按鈕縮放並且鼠標右鍵旋轉(並且我沒有做任何特殊的事情來獲取它)。你說你沒有得到這個?你可能想嘗試設置:visual.scene.autoscale = 0,visual.scene.userzoom = 1,visual.scene.userspin = 1,但我認爲默認是允許交互,所以這不應該是必要的。 – tom10 2010-09-06 22:21:09