0
A
回答
2
對於任何絆倒這個問題,這是邁克丹尼斯的答案: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/642253a6-e7a5-4ce2-bc08-e91f2634605b/
這個自動縮放是透視圖工作方式的結果。
默認的視野是45,默認的近平面距離是 0.125。這意味着當x座標爲tan(45/2)* 0.125 = 0.051776時,點(x,0,0.125)將在視口的右側可見。請注意視口寬度如何在此計算中不起作用,如果將它擴大(0.051776,0,0.125),那麼 仍將在視口的右側可見,這就是爲什麼茶壺看起來更大。
你可以通過改變 視場和近平面的距離,東西沿着這些線路補償的寬度增加:
double newWidth = grid.ActualWidth;
double originalWidth = 509.0;
double originalNearPlaneDistance = 0.125;
double originalFieldOfView = 45.0;
double scale = newWidth/originalWidth;
double fov = Math.Atan(Math.Tan(originalFieldOfView/2.0/180.0 * Math.PI) * scale) * 2.0;
camera.FieldOfView = fov/Math.PI * 180.0;
camera.NearPlaneDistance = originalNearPlaneDistance * scale;
0
我知道這是舊的文章,但我已經來了跨過這幾次,我不確定接受的答案是否正確。平面距離附近定義物體太近以至於渲染的點。我不確定這可能會如何影響viewport3d及其子項的規模。我遇到過的情況是,修改Viewport3d.Width會影響3D場景的比例,而修改高度只會導致裁剪(或者如果變大,則添加空白)。這在我看來並不直觀,但也許它是我不知道的3D編程約定。
我對上述問題的解決方案是從它的網格中移除Viewport3D,而不是將其放置在畫布內。這將防止窗口大小改變視口的寬度,並且它應該保持相同的大小。
相關問題
- 1. DataGrid列重新調整大小,重新調整大小Grid ColumnDefinitions
- 2. NSViewController禁用調整大小
- 3. 禁用JQDialog調整大小
- 4. 禁用GridViewColumn調整大小
- 5. 窗口大小調整時禁用調整大小特定格
- 6. TinyMCE - 重新調整大小後,圖像重新調整大小手柄消失
- 7. ExtJS 4 - 調整大小後調整大小後調整大小的內部組件不會調整大小resizeHandles
- 8. 調整大小DIV調整
- 9. 調整大小
- 10. Jquery可調整大小顯示大小,同時調整大小
- 11. 用windowbuilder重新調整窗體大小
- 12. 在畫布上調整大小和重新定位圖像調整大小
- 13. Tkinter/Python - 在窗口調整大小時禁用調整按鈕的大小
- 14. jqGrid - 禁用用戶列大小調整
- 15. 用Java調整圖像大小。如何調整大小
- 16. 在用戶調整大小後停止調整jpanel的大小
- 17. 使用JQuery調整窗口大小調整CSS字體大小
- 18. Firefox 55.03調整大小使用硒自動化調整大小
- 19. 使用jQuery調整大小後調整大小後的寬度
- 20. Facebook API - 重新調整大小圖片
- 21. 調整大小並重新繪製datagridview
- 22. 包裝器重新調整大小
- 23. Vim NERDTree重新調整大小vsplit
- 24. 重新調整圖像大小?
- 25. AutoLayouts,Contraints,UIView和重新調整大小
- 26. 無法重新調整大小fancybox 2
- 27. 重新調整像素的大小pygame
- 28. 表單背景重新調整大小?
- 29. NSView調整大小
- 30. 調整大小BitmapImage
鏈接腐爛發生。請在這裏總結或引用關鍵位。只有鏈接的答案可能會被刪除。 –