簡體   English   中英

如何使用Java2D繪制內部筆划

[英]How to draw inner stroke with Java2D

我只想繪制尺寸正好為15x15像素的圓圈,並且有填充和輪廓。 我正在使用Java2D。 問題是,由於后來被稱為Graphics2D.fill(circle)Graphics2D.draw(circle)因此繪制了16x16像素的圓。 這是因為內部的Java2D outlinig機制,它對於給定的15x15大小提供了16x16的圓形輪廓。 此外,如果我要求Java2D繪制14x14像素的圓形輪廓 - 它精確地繪制14x14像素。 我試圖玩抗鋸齒和渲染渲染器的中風提示沒有運氣。
插圖 這是:

  1. RenderingHints.VALUE_STROKE_NORMALIZEEllipse2D.Double(0, 0, 15, 15)大綱
  2. RenderingHints.VALUE_STROKE_PURE和相同的輪廓 - 注意1px失真
  3. 上一個筆畫提示和Ellipse2D.Double(0, 0, 14, 14)
  4. RenderingHints.VALUE_STROKE_NORMALIZEEllipse2D.Double(0, 0, 15, 15)輪廓和抗鋸齒提示

因此,我無法使用Java2D繪制15px圓形輪廓(也是13 px,29 px和任何奇數)。 有沒有辦法繪制某種內部筆划,它填充形狀內邊緣的像素?

看起來“1”是你想要的選項,但你有一個一個一個錯誤。 0,0到15,15實際上應該是16像素。 如果你想要15個像素,你需要0到14,14。

如果它是具有預定義顏色的15x15,您可以在一些圖像編輯程序中預渲染並使用drawImage。

您還可以考慮按.5,.5進行翻譯。 當你做Ellipse.Double(.5,.5,15.5,15.5)時,看看#2的樣子你可能會對這個結果更滿意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM