1

ユーザー インターフェイスにタブを描画しています。希望通りのアウトラインができました。エリアを埋めるにはどうすればよいですか?

これは、タブの境界線を描画するコードです。

val g2 = g.asInstanceOf[Graphics2D]

g2.translate(x, y)
val q = new CubicCurve2D.Float
q.setCurve(0, h, 8, h, 6, 0, 16, 0)
g2.setColor(Color.RED)
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON)
g2.draw(q)
val end = w - 8
g2.drawLine(17, 0, end, 0)
q.setCurve(end, 0, end+10, 0, w, h, w + 8, h)
g2.draw(q)

これが描画する線です (赤い線): image

赤い線の内側を埋められるようにしたいです。

4

1 に答える 1

3

Scala についてはわかりませんが、Java 2D では、Graphics2D オブジェクトは任意のShapeオブジェクトの輪郭を塗りつぶしたり描画したりできます。任意の形状については、次のようにGeneralPathオブジェクトで定義します。

GeneralPath path = new GeneralPath();
path.lineTo(10, 10);
path.lineTo(0, 10);
path.lineTo(0, 0);
graphics.setColor(Color.RED);
graphics.fill(path);

GeneralPath オブジェクトには、ベジェ曲線と四角形を描画するためのメソッドもあるため、パスを描画してから、その輪郭を塗りつぶすか描画するかを選択します。

GeneralPathへの新しいリンクを追加しました

于 2010-09-07T10:57:40.177 に答える