Zielony Smok

JavaFX canvas: Rysowanie łuku

Metoda void strokeArc(double x, double y, double w, double h,
double startAngle, double arcExtent, ArcType closure)

x – współrzędna x lewego górnego wierzchołka.

y – współrzędna y lewego górnego wierzchołka.

w – szerokość łuku

h – wysokość łuku

startAngle – kąt początkowy w stopniach łuku (°)

arcExtent – rozpiętość łuku w stopniach łuku (°), w kierunku przeciwnym do ruchu wskazówek zegara

closure – typ zamknięcia łuku (Round, Chord, Open)

Rysuje kontur łuku.

Podlega atrybutom wspólnym i atrybutom obwiedni.

Klasa Listing25_25a

Ściągnij klasę Listing25_25a

package rozdzial25c;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.shape.ArcType;
import javafx.stage.Stage;

public class Listing25_25a extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage) {
        try {
            Group root = new Group();
            Canvas cv = new Canvas(500, 320);
            GraphicsContext gc = cv.getGraphicsContext2D();
            //-
            gc.strokeArc(80.0, 80.0, 60.0, 60.0, 0.0, 90.0, ArcType.CHORD);
            gc.strokeArc(230.0, 80.0, 60.0, 60.0, 0.0, 90.0, ArcType.OPEN);
            gc.strokeArc(380.0, 80.0, 60.0, 60.0, 0.0, 90.0, ArcType.ROUND);
            //-
            gc.strokeArc(80.0, 180.0, 60.0, 60.0, 90.0, 270.0, ArcType.CHORD);
            gc.strokeArc(230.0, 180.0, 60.0, 60.0, 90.0, 270.0, ArcType.OPEN);
            gc.strokeArc(380.0, 180.0, 60.0, 60.0, 90.0, 270.0, ArcType.ROUND);
            //-
            root.getChildren().add(cv);
            Scene scene = new Scene(root);
            stage.setScene(scene);
            stage.setTitle("Metoda strokeArc");
            stage.setOnCloseRequest(e -> Platform.exit());
            stage.show();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Ustawione są jedynie domyślne atrybuty renderowania.

Wynik uruchomienia klasy:

Metoda strokeArc
Rys. 25_13. Metoda strokeArc

Metoda void fillArc(double x, double y, double w, double h,
double startAngle, double arcExtent, ArcType closure)

x – współrzędna x lewego górnego wierzchołka

y – współrzędna y lewego górnego wierzchołka

w – szerokość łuku

h – wysokość łuku.

startAngle – kąt początkowy w stopniach łuku (°)

arcExtent – rozpiętość łuku w stopniach łuku (°), w kierunku przeciwnym do ruchu wskazówek zegara.

closure – typ zamknięcia łuku (Round, Chord, Open)

Rysuje kontur łuku.

Rysuje wypełnienie łuku.

Podlega atrybutom wspólnym i atrybutom wypełnienia.

Klasa Listing25_25b

Ściągnij klasę Listing25_25b

package rozdzial25c;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.shape.ArcType;
import javafx.stage.Stage;

public class Listing25_25b extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage) {
        try {
            Group root = new Group();
            Canvas cv = new Canvas(500, 320);
            GraphicsContext gc = cv.getGraphicsContext2D();
            //-
            gc.fillArc(80.0, 80.0, 60.0, 60.0, 0.0, 90.0, ArcType.CHORD);
            gc.fillArc(230.0, 80.0, 60.0, 60.0, 0.0, 90.0, ArcType.OPEN);
            gc.fillArc(380.0, 80.0, 60.0, 60.0, 0.0, 90.0, ArcType.ROUND);
            //-
            gc.fillArc(80.0, 180.0, 60.0, 60.0, 90.0, 270.0, ArcType.CHORD);
            gc.fillArc(230.0, 180.0, 60.0, 60.0, 90.0, 270.0, ArcType.OPEN);
            gc.fillArc(380.0, 180.0, 60.0, 60.0, 90.0, 270.0, ArcType.ROUND);
            //-
            root.getChildren().add(cv);
            Scene scene = new Scene(root);
            stage.setScene(scene);
            stage.setTitle("Metoda fillArc");
            stage.setOnCloseRequest(e -> Platform.exit());
            stage.show();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Ustawione są jedynie domyślne atrybuty renderowania.

Wynik uruchomienia klasy:

Metoda fillArc
Rys. 25_14. Metoda fillArc