2

これはそれほど重要ではありませんが、しばらくの間私を悩ませていました。

問題の説明:
指定:線(Line2D)
必要:線をくさびとして描画する(Filled GeneralPath)

確かに、これは、ウェッジを一般パスとして作成し、それをグラフィックス(私のソリューション)で埋めることで実行できます。

私の最初のアプローチは、何らかの理由で線オブジェクトを変更したくなかったので、くさび線の線でした。また、線オブジェクトを描画して、それ以上考えたくなかったのです。ウェッジストロークの作成は問題ありませんでした(いくつかの計算とその後の一般パスの作成)-しかし、私はそれを(簡単に)埋めることができませんでした

どうやら、Graphics2Dの塗りつぶしは、取得した形状のみを塗りつぶし、ストロークの塗りつぶしは処理しないようです(考えれば、その動作は理にかなっています)。

質問:ストロークの図形を塗りつぶす方法はありますか(図形を塗りつぶす-より具体的には:GeneralPath-何らかの方法で描画する前に)?

4

3 に答える 3

3

を使用したら、 「の輪郭をなでる」一方で「の内部を塗りつぶす」ことにcreateStrokedShape()注意してください。draw()Shapefill()Shape

于 2011-04-01T14:26:06.177 に答える
3

BasicStroke.public Shape createStrokedShape(Shape s)そこに Line2D を渡せば助けになるかもしれません。

于 2011-04-01T05:42:57.543 に答える
0
import java.awt.*;

public static Shape strokeToShape(Shape path, float strokeWidth)
    return new BasicStroke(strokeWidth).createStrokedShape(path);
}

capおよびjoinパラメータを指定することもできますBasicStroke

于 2016-05-20T10:11:12.280 に答える