我正在使用Graphics類繪製一系列Points。我正在從Point數組讀取數據。無論出於何種原因渲染的圖像是顛倒的(在X軸上翻轉)。有沒有簡單的方法告訴Graphics類繪製「顛倒」?非常感謝。在X軸上翻轉的C#GDI反轉圖形
回答
你應該注意到,大多數繪圖圖形的默認方位或方向系統從顯示器的頂部到顯示器的底部。爲了彌補這一點,您需要知道您的觀看區域的預期高度,然後從該高度減去您的座標。這將顛倒方向,並將相對於查看區域底部的數字進行設置。
假設您有兩個點,分別爲< x,y >和300(w)x 200(h)的視口。
{{0, 0}, {100, 200}}
當在觀看區域,<的x,y >將被映射到< X,200-Y繪圖>。這給了我們以下幾點。
{{0, 200}, {100, 0}}
也有機制來切換映射模式笛卡爾座標系的風格,這可能會匹配您的源數據,但通常是可以避免的,因爲它會重新映射其他一切已經默認定向補償。
如果這是您真正希望的,則Windows中的SetMapMode()函數可用於此目的。
這裏的P /調用該函數的簽名。 (從 pinvoke.net: setmapmode (gdi32))
[DllImport("gdi32.dll")]
static extern int SetMapMode(IntPtr hdc, int fnMapMode);
編輯:
有做到這一點,我個人還沒有試過另一種方式。
Graphics.TransformPoints Method @ MSDN
這允許您指定座標系和圖形對象將做映射爲您服務。在你的情況下,你可能希望以CoordinateSpace.World或CoordinateSpace.Page作爲第一個參數,而CoordinateSpace.Device作爲第二個參數。
TransformPoints使生活變得簡單。謝謝! – GDIHelp 2009-11-23 20:44:31
這聽起來並不像是倒過來畫的,而是像倒過來一樣。
檢查您是否期望與正確來源的座標。默認情況下,屏幕左上方應爲0,0。
編輯:你應該能夠通過每個點改變y以彌補在繪製時使用的公式Y =高度 - Y.
- 1. 在R條形圖中反轉跨X軸的子圖
- 2. 在Excel自定義圖表上翻轉X和Y軸
- 3. 在JS中翻轉軸的形狀
- 4. C#GDI + X-Y軸問題
- 5. 在Excel圖表中旋轉X軸c#
- 6. 如何在Angular-js的柱形圖上旋轉x軸標籤?
- 7. Google Charts:柱形圖反轉y軸
- 8. SCNVector4:在X軸上旋轉
- 9. CABasicAnimation在x軸上旋轉視圖
- 10. 翻轉Y軸?
- 11. NetworkX:翻轉圖形
- 12. 翻轉x = y線上的DICOM圖像
- 13. 在分組條形圖上旋轉X軸標籤45度R
- 14. 如何使用AVFoundation在x軸上翻轉錄制的視頻?
- 15. OpenGL ES 2.0 X軸被翻轉了嗎?
- 16. 在X軸上翻轉一個QGraphicsItem「inplace」(左/右)
- 17. 如何在X或Y軸上翻轉一個精靈cocos2d-python
- 18. 如何在d3中繪製鏡像的x軸(反轉)條形圖?
- 19. 在兩個軸上翻轉NSImage
- 20. 在Y軸上反轉一個角度,X的作品
- 21. 在vtk中翻轉Y軸
- 22. ZedGraph x軸圖形上的矩形頂
- 23. ggplot2:反轉次級連續x軸
- 24. Jquery - 旋轉DIV在X軸上的50%
- 25. .NET GDI +反轉文本
- 26. 如何在全局座標軸上旋轉圖形,而不是在本地座標軸上旋轉圖形?
- 27. 軸上的jquery翻轉插件
- 28. 在d3.js條形圖中切斷旋轉的x軸標籤
- 29. 三角形的反轉[c]
- 30. C#GDI旋轉彈
「在X軸上翻轉」和「顛倒」都意味着圖像在X軸(*沿* Y軸)上反射* – schnaader 2009-11-23 20:07:50
oops。刪除了我的評論。不知道爲什麼我看錯了。 – meklarian 2009-11-23 20:10:43