嘿傢伙,我正在使用wpf 3d,我現在正在編寫一個程序,它會在屏幕上從左到右創建3d塊,但是我需要知道我的界限是在X上,Y ie(-x -0)(0-x +),所以我知道什麼時候開始另一排瓷磚。我最初的想法是試圖找出一個複雜的算法,從像素到屏幕座標,但似乎應該有一個更簡單的方法。Wpf視口座標
Q
Wpf視口座標
2
A
回答
3
如果我正確理解你,你想知道通過你的Viewport3DVisual可以看到什麼範圍的3D座標。
此問題沒有單一答案。想知道爲什麼,想象你坐在廚房的餐桌上吃早飯,碰巧看窗外。你可以看到什麼水平範圍?那麼,你可以看到距離遠處五英里的藍山,但只有三十英尺的後圍。換句話說,可視區域不是矩形棱鏡而是金字塔。
底線是,您必須先指定所涉及的距離,然後才能通過視口顯示水平和垂直範圍。
一旦指定的距離,這裏是如何將視口中的3D點在給定的平面地圖,而自己做所有的計算:
- 創建一個單獨的Viewport3dVisual模型,使用相同的相機設置但是隻有一個由所需距離的單個大矩形組成的模型。
- 使用命中測試來測試視口的每個角落,接收命中的測試結果回調。
- 從命中測試結果中提取矩形上的座標,並將它們用於計算。
這種技術的優點是可以在相機可能面對的任何地方可靠工作,甚至適用於動畫相機等。注意:如果我誤解了這個問題,並且您只是想要在2D中佈置包含3D內容的圖塊的行,那麼您可以通過簡單地使用WrapPanel來獲得您描述的效果。如果要進行數據綁定,請使用帶有WrapPanel的ItemPanelTemplate的ItemsControl或ListBox。
相關問題
- 1. 視口座標的計算
- 2. WPF座標系
- 3. SVG - 從窗口座標到視圖框座標
- 4. 將視圖端口座標轉換爲實際圖像座標
- 5. WPF:在屏幕座標和WPF座標之間轉換
- 6. WPF Mouse down event no座標
- 7. WPF座標系統更新
- 8. 座標在WPF畫布
- 9. glScene函數將對象的3D座標轉換爲視口2D座標
- 10. 視口3D WPF C#
- 11. 將屏幕轉換爲WPF座標而不顯示窗口
- 12. Firefox:獲取視口左上角的鼠標座標
- 13. WPF在viewmodel中獲取鼠標座標
- 14. Java窗口座標錯誤
- 15. 將屏幕鼠標座標轉換爲窗口座標
- 16. 獲取鼠標座標相對於jQuery對話窗口而不是視口?
- 17. 在WPF中可視化世界系統的座標軸3D
- 18. 整個窗口上的鼠標座標
- 19. 打開鼠標座標窗口
- 20. ios視圖座標系
- 21. Android MotionEvent和視圖座標
- 22. 視野和座標翻譯
- 23. 在OpenGL中將窗口座標轉換爲軸座標
- 24. 轉換查看座標,窗口座標SFML
- 25. Python Tkinter將畫布座標轉換爲窗口座標
- 26. 轉換NSPoint在屏幕座標窗口座標
- 27. 如何將窗口的座標轉換爲控制座標
- 28. 如何將窗口座標轉換爲2D OpenGL ES座標?
- 29. 將圖片座標轉換爲窗口座標
- 30. 如何從GLUT座標轉換到窗口座標