2013-04-12 111 views
1

我繪製在一個三連勝三維向量場在Maple 14:鏈接3D旋轉繪製

> with(plots); 
> A := Array(1 .. 3): 
> A[1] := fieldplot3d(...): 
> A[2] := fieldplot3d(...): 
> A[3] := fieldplot3d(...): 
> display(A); 
    Here are the three plots arranged like this: [plot1] [plot2] [plot3] 

現在我可以單獨他們每個人輪流去探索矢量場。 是否可以鏈接其他兩個地塊,以便他們將自動旋轉到相同的方向?如果僅在旋轉其中一個時(例如最左邊),這將是很好的。

例如,在MatLab中有linkprop函數可以鏈接兩個軸的屬性,因此其中一個軸的變化(旋轉,縮放,範圍等)也會應用於其他軸。

回答

1

我不認爲這可以在當前Maple中使用通常的左鍵單擊拖動3D圖或通過調整繪圖菜單欄中的三個方向框(它出現在GUI的頂部,何時您左鍵單擊以將光標對焦於任何單獨的3D圖)。

但是,您可以在一個或多個繪圖組件中設置繪圖,並創建三個其基礎操作代碼導致重新顯示的滑塊。這三個滑塊可以控制三個方位角。這不像使用鼠標光標來徒手旋轉那樣令人愉快。但至少它允許多個繪圖組件(或者,在您的情況下,一個繪圖組件中的數組繪圖)中的繪圖一致旋轉。

如果您不熟悉嵌入式組件編程,可以使用其增強型Explore命令,在Maple 17中設置上述一種方便的方法。

在楓17個簡單的例子,你也許會調用替換到plots:-fieldplot,可能是,

A:=Array(1..3): 
A[1]:=plot3d(x^3*y,x=-10..10,y=-10..10): 
A[2]:=plot3d(sin(x)*y,x=-10..10,y=-10..10): 
A[3]:=plot3d(x*y^2,x=-10..10,y=-10..10): 

Explore(plots:-display(A,orientation=[theta,phi,psi]), 
    parameters=[theta=-180..180,phi=-180..180,psi=-180..180]); 

在楓16的Explore命令不支持上述電話,但三個滑塊和劇情組件不難掛鉤在一起,以獲得統一重定向和重新顯示的相同效果。

上述方法不是非常有效的內存,因爲它需要從引擎到圖形用戶界面的很多整個3D繪圖結構的娛樂和通信。這與通過鼠標光標在3D圖上的徒手拖拽獲得的旋轉類型形成鮮明對比,僅僅涉及GUI,並且可能只是高效的OpenGL重新顯示。任何類型的內存泄漏,即使是每個傳遞的3D圖(對於Maple 16的標準GUI似乎都有),這種方法可能會導致標準Java GUI緩慢地佔用內存並最終導致停頓。

+0

不錯的把戲,**宏碁**,謝謝。我不太經常使用Maple,出於某種原因,我總是把它當作「認真的數學計劃」,與MatLab比較,例如,在那裏可以做更多有趣/編碼的東西(GUI等)。我有Maple-14和'Explore'命令不能按照你描述的方式工作,但我一定會玩滑塊(我不知道它們甚至存在於Maple中:)。 – anandr