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

Má tam být jenom radius.
Ten kruh máš rozdělený do 20 části, ne?

double centerX = 500;
double centerY = 500;
MoveTo moveToCenter = new MoveTo(centerX, centerY);
double radius = 500;
double lineX = centerX + radius;
double lineY = centerY;
int steps = 20;
double step = 360.0 / steps;
for (double deg = step; deg <= 360; deg += step) {
    Path path = new Path();
    path.getElements().addAll(moveToCenter, new LineTo(lineX, lineY));
    double rad = Math.toRadians(deg);
    lineX = centerX + radius * Math.cos(rad);
    lineY = centerY + radius * Math.sin(rad);
    path.getElements().addAll(new ArcTo(radius, radius, 0, lineX, lineY, false, true), moveToCenter);
    path.setFill(Color.color(Math.random(), Math.random(), Math.random()));
    getChildren().add(path);
}

Pak si z toho můžeš udělat jednoduchou znovupoužitelnou metodu:

drawCircle(500, 500, 500, 20);

void drawCircle(double centerX, double centerY, double radius, int steps) {
    MoveTo moveToCenter = new MoveTo(centerX, centerY);
    double lineX = centerX + radius;
    double lineY = centerY;
    double step = 360.0 / steps;
    for (double deg = step; deg <= 360; deg += step) {
        Path path = new Path();
        path.getElements().addAll(moveToCenter, new LineTo(lineX, lineY));
        double rad = Math.toRadians(deg);
        lineX = centerX + radius * Math.cos(rad);
        lineY = centerY + radius * Math.sin(rad);
        path.getElements().addAll(new ArcTo(radius, radius, 0, lineX, lineY, false, true), moveToCenter);
        path.setFill(Color.color(Math.random(), Math.random(), Math.random()));
        getChildren().add(path);
    }
}

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