Ich habe ein Java-Programm, das dem Bezier-Werkzeug in Inkscape sehr ähnlich ist. Der Zweck meines Programms ist es, dem Benutzer zu ermöglichen, die Kurven zu verwenden, um einen Pfad um ein Objekt (wie den Kopf einer Person) zu zeichnen und dann die Pixel innerhalb der eingeschlossenen Kurven zu extrahieren (kopieren). Im angehängten Bild sehen Sie, dass es drei blaue Kurven gibt, die einen geschlossenen Bereich bilden. Ich würde gerne wissen, wie man den von diesen 3 Kurven eingeschlossenen Bereich kopiert? So kopieren Sie einen Bereich eines Bildes, der von kubischen Kurven eingeschlossen ist
Der Code, den ich die Kurven zeichnen verwenden (ich die roten Tangenten und die roten Kontrollpunkte der Einfachheit halber weggelassen):
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);
Wenn Wenn Sie eine Polygonfüllung mit Ihrer Kurve durchführen, definiert das Polygon den Bereich, den Sie kopieren müssen. –
Entschuldigung für diese Dummy-Frage, da ich neu in Java bin: Würden Sie mir bitte Ihren Vorschlag im Code zeigen? Ich habe gesucht, konnte aber keine Funktion der Klasse Polygon finden, die mir den Bereich zurückgeben würde. –
"Wenn Sie eine Polygonfüllung mit Ihrer Kurve machen, wird das Polygon den Bereich definieren, den Sie kopieren müssen": viel balooney – gpasch