我想通過鼠標在Matlab或者Simulink中輸入座標,通過鼠標器件在3D座標輸入的Matlab沒有內置工具,但是內置函數ginput
只能存儲鼠標的二維座標,是否有可能在MATLAB/SIMULINK中通過鼠標器輸入三維座標?3D鼠標輸入在Matlab/Simulink中
回答
如果我理解正確,那麼當繪圖爲3D時,您希望獲得鼠標單擊的座標(在數據空間中)。也就是說,你點擊圖中的某個地方,它會返回你當前的位置。我實際上已經解決了這個確切的問題。
這個任務的主要困難 - 和其他海報已經暗示 - 它是你在點擊一個2D屏幕。因此,您無法在2D屏幕上唯一指定3個獨立位置。相反,單擊屏幕可定義垂直於屏幕平面的線段,沿着此線條的任何3D點都是同樣有效的。你明白爲什麼會出現這種情況嗎?
爲了演示,試試這個簡單的例子在Matlab:
surf(peaks); %draw a sample plot
keydown = 2;
while keydown ~= 0,
disp('Click some where on the figure');
keydown = waitforbuttonpress;
end
currPt = get(gca,'CurrentPoint');
disp(currPt);
你會觀察到currPt是2×3的矩陣。這定義了這條線的起點和終點。讓我們現在畫這條線:
hold on;
plot3(currPt(:,1), currPt(:,2), currPt(:,3), 'k-', 'LineWidth', 2);
view(-19,46); %rotate to view this line
所以問題是:如何定義沿着這條線你想要選擇哪一點?那麼答案取決於你的第一個數據類型。如果您有點數據,則精確選擇頂點中的一個可能會非常棘手,您可能需要對數據進行一些後處理(例如,計算數據集中最接近currPt行的點)。如果您有修補程序或表面數據(如本例),則這只是一條線和一個平面的交點。
File Exchange上有一些工具可以爲各種數據集獲取3D點。我剛發現的一個是:http://www.mathworks.com/matlabcentral/fileexchange/7594-click3dpoint
這是一個公共論壇。如果您有任何問題,請在這裏發佈,以便其他人可以從您的發現中受益。使用電子郵件打敗了這個論壇的重點。到目前爲止,你有什麼特別的嘗試?你卡在哪裏? – user1004061
我願意協助您;我只是要求a)通過這個論壇,b)你展示一些你自己的努力。但如果你不需要幫助,那麼這就是你的特權。 – user1004061
- 1. 鼠標輸入事件,但只有當鼠標輸入不在
- 2. 在Java Swing中嵌入鼠標輸入
- 3. gvim中的鼠標輸入
- 4. TASM鼠標輸入
- 5. 如何在鼠標輸入事件中觸發鼠標中鍵?
- 6. 在鼠標上輸入在jquery中輸入後代/嵌套div
- 7. 鼠標移動捕獲(鼠標離開和鼠標輸入)
- 8. 鼠標輸入/鼠標離開和鼠標左鍵按下
- 9. 鼠標輸入與graphics.py
- 10. LWJGL鼠標滾輪輸入
- 11. 鼠標沒有輸入
- 12. 鍵盤/鼠標輸入C++
- 13. jQuery的鼠標輸入
- 14. Java鼠標輸入每秒
- 15. 鼠標輸入和鼠標離開在JavaScript
- 16. 當鼠標輸入div時切換搜索輸入,然後隱藏鼠標輸入時的搜索輸入
- 17. 模擬鼠標輸入/輸出
- 18. Three.js鼠標懸停在3D元素上
- 19. 鼠標跳躍,當我輸入標籤
- 20. GLSL標準化鼠標輸入
- 21. 圖像淡入鼠標輸入事件
- 22. 如何在鼠標輸入/輸出中播放/暫停視頻?
- 23. Unproject鼠標讓3D世界座標Libgdx
- 24. 在鼠標上輸入輸入字段展開
- 25. 如何在CSS類中添加鼠標輸入和鼠標離開效果
- 26. 使鼠標光標在NSTextField中輸入時保持可見
- 27. 如何在Visual Studio 2010中輸入時隱藏鼠標光標?
- 28. 在WPF應用程序中注入鼠標輸入
- 29. CSS轉換鼠標輸入動畫和鼠標動畫
- 30. 全球鼠標鉤子+模擬鼠標輸入
2D屏幕上的3D座標?至少可以說是不是很直觀,是嗎? –
3D屏幕中的3D座標顯然。 – developer
什麼是* 3-D *屏幕? –