JavaFX canvas: Rysowanie wieloboku (wielokąta)
Metoda void strokePolygon(double[] xPoints, double[] yPoints, int nPoints)
xPoints
– współrzędne x
kolejnych punktów łamania linii.
yPoints
– współrzędne y
kolejnych punktów łamania linii.
nPoints
– liczba punktów tworzących wielobok.
Rysuje kontur wielobok o podanych współrzędnych. W przypadku tablic null
– nic nie zostanie narysowane.
Podlega atrybutom wspólnym i atrybutom obwiedni.
Listing25_24a
Ściągnij klasę Listing25_24a
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.stage.Stage; public class Listing25_24a 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(300, 300); GraphicsContext gc = cv.getGraphicsContext2D(); //- double[] iksy = {20, 70, 120, 170, 220, 270}; double[] igreki = {70, 130, 80, 190, 180, 20}; gc.strokePolygon(iksy, igreki, iksy.length); //- root.getChildren().add(cv); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("Metoda strokePolygon"); stage.setOnCloseRequest(e -> Platform.exit()); stage.show(); } catch (Exception e) { e.printStackTrace(); } } }
Ustawione są jedynie domyślne atrybuty renderowania.
Wynik uruchomienia klasy:
Metoda void fillePolygon(double[] xPoints, double[] yPoints, int nPoints)
xPoints
– współrzędne x
kolejnych punktów łamania linii.
yPoints
– współrzędne y
kolejnych punktów łamania linii.
nPoints
– liczba punktów tworzących wielobok.
Wypełnia wielobok o podanych współrzędnych. W przypadku tablic null
– nic nie zostanie narysowane.
Podlega atrybutom wspólnym i atrybutom obwiedni. Podlega atrybutowi ścieżki Fill Rule
.
Klasa Listing25_24b
Ściągnij klasę Listing25_24b
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.stage.Stage; public class Listing25_24b 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(300, 300); GraphicsContext gc = cv.getGraphicsContext2D(); //- double[] iksy = {20, 70, 120, 170, 220, 270}; double[] igreki = {70, 130, 80, 190, 180, 20}; gc.fillPolygon(iksy, igreki, iksy.length); //- root.getChildren().add(cv); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("Metoda fillPolygon"); stage.setOnCloseRequest(e -> Platform.exit()); stage.show(); } catch (Exception e) { e.printStackTrace(); } } }
Ustawione są jedynie domyślne atrybuty renderowania.
Wynik uruchomienia klasy: