我是不是想要系統試圖縮放我的繪圖,我想完全依靠自己來完成,因爲任何嘗試擠壓/拉伸圖形都會產生難看的結果。問題是,隨着圖像變大,我想添加更多的細節,而不是簡單地放大。如何在C中精確定位直線#
現在我正在看兩組條紋。一個是黑/白,另一個是黑/白/白。筆寬設置爲1.
當該線被水平繪製時,它是正確的。同樣的邏輯繪製垂直線似乎正在做一些抗鋸齒,將黑色滲透到附近的白色。黑色/白色/白色看起來不像橫向,黑色/白色看起來更像中等++灰色/中等灰色。
相同的代碼是在所有情況下生成座標,轉換邏輯只是選擇什麼偏移量應用在哪裏,因爲我只支持紅雀方向。由於沒有涉及浮點數,所以我無法查看精度問題。
我該如何讓系統離開我的圖形?
(是的,我意識到這將不會在非常高的分辨率下工作,最終我將不得不放大線條在任何合理的屏幕縮放因素,這無關緊要,打印機使用我會必須與它玩,看到我需要擴展的基本問題是,我試圖鞋拔子東西放進太少像素,而不只是讓斑點)
編輯:。沒有脫屑回事。我正在生成一個位圖目標窗口的確切大小。所有線條均以整數座標繪製。將SmoothingMode設置爲None的建議會改變情況:現在,黑/白/白繪製爲非常清晰的灰色/灰色/白色,黑色/白色繪製爲純灰色框。現在,這是清理,我可以看到一些應該是黑色的單獨的垂直線實際上是作爲繪製2像素灰色條相同的東西。就像我所有的垂直線都以1/2像素爲單位 - 但每個繪圖命令只能獲得整數。
再次編輯:我已經瞭解了更多關於這個問題。圖像正在正確繪製,但在顯示到屏幕時被丟棄。 (將其保存到磁盤並在相同的顯示器上查看它可以正確繪製。)
讓你的系統爲我處理它意味着什麼?我認爲沒有辦法 - 我想在圖片變大時添加更多細節。當瓦片很小時,圖紙非常粗糙,但是試圖做更詳細的任何事情只會造成一團糟。 – 2009-11-04 14:48:32
我假設你在.NET中使用GDI +。使用GDI +(如果您願意使用更現代化的框架,則使用WPF),您可以使用Transforms。您可以像繪製矢量圖像一樣繪製圖像,然後使用變形進行縮放,旋轉,傾斜和移動。系統將從這一點爲您處理所有事情,您只需應用適當的轉換即可在視口中顯示您要繪製的圖像或其中的一部分圖像。 – jrista 2009-11-04 17:18:15