Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem JavaFX - Jak vybarvit uzavřenou oblast?

Aha, ty vlastně udáváš jenom koncové body.

Pomocí tohoto kódu nakreslím to samé, co v zadání a navíc to obarvím - obrázek3.

Path path = new Path();
MoveTo moveTo = new MoveTo(1000, 500);
LineTo lineTo = new LineTo(900, 400);
ArcTo arcTo = new ArcTo();
arcTo.setX(870);
arcTo.setY(230);
arcTo.setRadiusX(500);
arcTo.setRadiusY(500);
LineTo lineTo2 = new LineTo(970, 330);
ArcTo arcTo2 = new ArcTo();
arcTo2.setX(1000);
arcTo2.setY(500);
arcTo2.setRadiusX(500);
arcTo2.setRadiusY(500);
arcTo2.setSweepFlag(true);
path.setFill(Color.GREEN);
path.getElements().addAll(moveTo, lineTo, arcTo, lineTo2, arcTo2);

Jenže, když např. nakreslíš, pomocí tohohle kódu - obrázek 4.

Circle circle = new Circle(500, 500, 500, Color.TRANSPARENT);
circle.setStroke(Color.BLACK);
Line line1 = new Line(0, 500, 1000, 500);
Line line2 = new Line(500, 0, 500, 1000);
double a = 500 * Math.cos(Math.toRadians(18));
double b = 500 * Math.sin(Math.toRadians(18));
Line line3 = new Line(500 - a, 500 - b, 500 + a, 500 + b);
Line line4 = new Line(500 + a, 500 - b, 500 - a, 500 + b);
a = 500 * Math.cos(Math.toRadians(36));
b = 500 * Math.sin(Math.toRadians(36));
Line line5 = new Line(500 - a, 500 - b, 500 + a, 500 + b);
Line line6 = new Line(500 + a, 500 - b, 500 - a, 500 + b);
a = 500 * Math.cos(Math.toRadians(54));
b = 500 * Math.sin(Math.toRadians(54));
Line line7 = new Line(500 - a, 500 - b, 500 + a, 500 + b);
Line line8 = new Line(500 + a, 500 - b, 500 - a, 500 + b);
a = 500 * Math.cos(Math.toRadians(72));
b = 500 * Math.sin(Math.toRadians(72));
Line line9 = new Line(500 - a, 500 - b, 500 + a, 500 + b);
Line line10 = new Line(500 + a, 500 - b, 500 - a, 500 + b);
getChildren().addAll(circle, line1, line2, line3, line4, line5, line6, line7, line8, line9, line10);

tak obarvit všechny různými barvami, pomocí Path, je obrovský problém respektive napsat takový kód je strašně zdlouhavé.

Neexistuje, prosím Vás, nějaká jednodušší alternativa?

Díky

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny