2012-11-05 57 views
3

我在具有已知座標x,y,z的3-D軸上有一個對象。我想移動對象上的指針。我知道有一個名爲moveptr的未公開的函數,但不幸的是它不支持三維座標軸。我試圖將三維座標投影到座標軸的二維座標上,但感覺錯了,結果是錯誤的,即它將指針移動到了錯誤的位置。將指針移動到對象上(MATLAB)

mvpt= view * [x y z 1]' 
mvpt=mvpt(1:2) 
moveptr(handle(gca),'init') 
moveptr(handle(gca),'move',mvpt(1),mvpt(2)) 

其他建議?

回答

1

我認爲你應該在同一個圖上疊加一個2-D軸,在這個圖上你有3D對象的投影。這不完全是你在這裏做什麼,我不知道什麼是視圖的單一輸出(我總是在我的3D作品中使用方位角和仰角...)

如何將3D結構投影到2D上已在其他地方解釋:http://www.mathworks.com/matlabcentral/newsreader/view_thread/169417

然後,您可以在新軸上使用moveptr,然後擦除2D圖和座標軸。這有點髒,但它應該做的。

+0

這是一個好主意!但是,要確定正確的軸限制和您建議的虛擬軸的位置是非常困難的。有關於此的任何想法? – bop

+0

如果我是你,我會做試驗和錯誤......除非你有很多數學抽象技能,你可以把投影面積的計算和定位放在紙上。這不是關於matlab的,而是關於現在純粹的數學。但至少我給了你一條路:)。祝你好運! – Wli

+0

如果最終能爲您解決問題,請您將它投票並將其標記爲答案?如果是這樣,請總結一下你做了什麼(並且將你的帖子標記爲答案而不是我的答案)。謝謝! – Wli