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 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: