我只想繪製正好爲15x15像素大小的圓形,並填充和輪廓。我正在使用Java2D。問題在於,由於連續地稱爲Graphics2D.fill(circle)
和Graphics2D.draw(circle)
而繪製了16x16像素的圓圈。這是因爲內部的Java2D outlinig機制,對於給定的15x15大小提供了16x16的圓形輪廓。此外,如果我要求Java2D繪製14x14像素的圓形輪廓 - 它會繪製完整的14x14像素。我試圖玩抗鋸齒和中風提示渲染沒有運氣。
這裏是:如何用Java2D繪製內部中風
RenderingHints.VALUE_STROKE_NORMALIZE
和Ellipse2D.Double(0, 0, 15, 15)
輪廓RenderingHints.VALUE_STROKE_PURE
和相同的輪廓 - 通知1px的失真- 卒中提示和
Ellipse2D.Double(0, 0, 14, 14)
RenderingHints.VALUE_STROKE_NORMALIZE
,Ellipse2D.Double(0, 0, 15, 15)
大綱和抗鋸齒提示
所以,我無法繪製15px的圓形輪廓(也是13 px,29 px和任何奇數大小)與Java2D。有沒有辦法繪製某種內部筆觸,它填充形狀內邊界的像素?
恕我直言,沒有辦法做到這一點在Java Grapics/Graphics2D庫,因爲我在過去面臨同樣的問題,找不到任何合理的解決方案。無論如何,選項1和4看起來不錯,如果你不想改變你的圖形庫。 – dagi12 2015-07-06 18:43:42