私は、Inkscapeのベジェツールとよく似たJavaプログラムを持っています。私のプログラムの目的は、ユーザーがカーブを使用してオブジェクトの周りのパス(人の頭のように)を描き、囲まれたカーブ内のピクセルを抽出(コピー)できるようにすることです。添付の図では、閉じた領域を形成する3つの青い曲線があることがわかります。私はこれらの3つの曲線で囲まれた領域をコピーする方法を知りたいですか? キューブカーブで囲まれたイメージの領域をコピーする方法
私は曲線(私は赤の接線と簡略化のために赤いコントロールポイントを省略)を描画するために使用するコード:
cubicCurve1 = new CubicCurve2D.Double(
p1.x, p1.y,
p1Control1.x, p1Control1.y,
p2Control1.x, p2Control1.y,
p2.x, p2.y);
cubicCurve2 = new CubicCurve2D.Double(
p2.x, p2.y,
p2Control2.x, p2Control2.y,
p3Control1.x, p3Control1.y,
p3.x, p3.y);
cubicCurve3 = new CubicCurve2D.Double(
p3.x, p3.y,
p3Control2.x, p3Control2.y,
p1Control1.x, p1Control1.y,
p1.x, p1.y);
g2D.setPaint(Color.BLUE);
g2D.draw(cubicCurve1);
g2D.draw(cubicCurve2);
g2D.draw(cubicCurve3);
の場合曲線を使用してポリゴン塗りを行うと、ポリゴンはコピーする必要がある領域を定義します。 –
私はJavaに新しいので、このダミーの質問には申し訳ありません:あなたの提案をコードで表示してもらえますか?私は見ましたが、私にその領域を返すPolygonクラスの関数を見つけることができませんでした。 –
"あなたの曲線を使ってポリゴンを塗りつぶした場合、ポリゴンはコピーする必要がある領域を定義します":balotonyの多くは – gpasch