繪製真實座標
回答
在某些時候,它們需要轉換爲整數來繪製實際像素。
但是,一般來說,你做而不是只想將每個float轉換爲int,然後繪製 - 你幾乎肯定會弄得一團糟。相反,您需要/想要縮放浮點數,,然後將縮放值四捨五入爲整數。在大多數情況下,您會希望使縮放因子可變,以便用戶可以根據需要放大和縮小。
另一種可能性是讓硬件處理大部分工作 - 您可以使用OpenGL(舉一個例子)渲染你的點,把它們作爲內部浮點,讓驅動程序/硬件處理像縮放轉換爲整數。這有一個相當陡峭的成本預先(學習足夠的OpenGL,以使它做任何有用的事情),但也可以有相當可觀的回報,如快速,基於硬件的渲染,並使它相對容易處理一些事情像縮放和(如果您需要它)能夠像2D一樣容易地顯示3D點。
編輯:(主要是對評論的迴應):最終歸結爲:屏幕的分辨率低於浮點數的分辨率。例如,真正高分辨率的屏幕可能會水平顯示2048個像素 - 這是11位分辨率。即使是單精度浮點數也有大約24位的精度。不管你怎麼做,將24位分辨率降低到12位分辨率都會失去一些東西 - 通常是lot。
這就是爲什麼你幾乎有有讓你的比例因子可變 - 所以用戶可以選擇是否縮小,以降低分辨率看到整個圖片,或放大看到一個高分辨率的小部分。
由於提到了子像素分辨率:它確實有幫助,但只有一個小。這不會解決映射到單個像素的上千種不同的項目。
你必須將它們轉換爲整數,然後將它們傳遞給函數一樣MoveTo()
和LineTo()
。
這些float
值代表什麼?我會假設他們是一些協調員。你需要知道兩件事情:
- 源分辨率(即在這些座標繪製的DPI)
- ,你需要的範圍,以解決
之後,這成爲一個問題,將點轉換爲合適的整數座標(根據您的屏幕分辨率)。
編輯:一個簡單的公式將是:
X(dst) = X(src) * DPI(dst)/DPI(src)
比例。例如,將所有積分值乘以10.將浮點值乘以10.0,然後截斷或舍入(您的選擇)。現在情節正常。
這會給你在圖形上額外的精確度。請記住看圖片時的比例因子。
否則轉換彩車繪製之前爲int。
你可以嘗試使用GDI +,而不是GDI,它有使用浮動座標功能。
- 1. 座標X Y繪製Android
- 2. Microsoft Chart繪製點座標
- 3. 繪製線的座標
- 4. ImageMagick繪製翻譯座標
- 5. 繪製圖像座標
- 6. 座標繪製大廳圖
- 7. 繪製真實圖形(graphviz?)
- 8. 用真實座標替換obj文件幾何頂點座標3D座標
- 9. 在座標軸上繪製標記
- 10. 使用座標繪製一條線
- 11. 繪製座標線使用Matplotlib
- 12. 在Android中繪製kml座標Google Map
- 13. 在Matlab中繪製球座標系
- 14. 在翻轉的Java座標中繪製
- 15. 繪製座標爲矩陣matplotlib蟒蛇
- 16. 繪製足跡而不是座標
- 17. 用多個座標軸繪製
- 18. 繪製座標之間的形狀
- 19. 繪製在非規範化座標 - glFrustum
- 20. 我如何使座標繪製螺旋
- 21. Java /圖形:繪製三維座標?
- 22. 在wpf中繪製座標區域
- 23. Java輸入座標和繪製線
- 24. 用極座標繪製正方形
- 25. 從.txt文件中繪製座標
- 26. 如何繪製一個政治座標繪製
- 27. 用openpyxl繪製折線圖 - 座標軸/繪圖問題
- 28. matlabs只能在一邊繪製每個繪圖的座標軸
- 29. 如果座標相交,ol3重繪繪製交互模式
- 30. ccDrawLine繪圖線座標
GDI?呃..這真的很老.. – Macke 2010-02-14 14:25:33