Graphismes avec Java FX

Quelques commandes pour dessiner dans le canevas

Pour pouvoir dessiner sur le canevas il faut dresser les commandes au "contexte graphique" du canevas,, récupéré par la méthode getGraphicsContext2D.

En clair les commandes de dessin doivent être précédées d'une ligne de type :

 
GraphicsContext gc=nom_du_canevas.getGraphicsContext2D();
(voir l'exemple du chronomètre pour plus de détails).

Dans les explications suivants, chaque commande graphique commence par "gc." pour préciser le fait qu'on dessine dans un contexte graphique qu'on a choisi d'appeler gc.

Les coordonnées (x,y) passées en paramètres aux méthodes de dessin sont toujours de type double.

Par défaut l'origine (0,0) est en haut à gauche (mais on peut la positionner ailleurs en utilisant la commande translate comme montré ici )

Formes de base

Tracé d'une ligne droite entre les points (x1,y1) et (x2,y2) , x1,y1,x2,y2 étant de type double

 gc.strokeLine(x1,y1,x2,y2)

Les méthodes permettant de tracer les formes de base se partagent en deux catégories : celles qui commencent par "stroke" et celles qui commencent par "fill".

Celles qui commencent par "stroke" permettent de tracer le contour de la forme, celles qui commencent par "fill" en remplissent l'intérieur.

Tracé d'un rectangle :

 gc.strokeRect(x,y,l,h)
ou
 gc.fillRect(x,y,l,h)
x et y sont les coordonnées du point supérieur gauche, l est la largeur et h la hauteur. h et l sont de type double.

Tracé d'une ellipse :

 gc.strokeOval(x,y,l,h)
ou
 gc.fillOval(x,y,l,h)
L'ellipse est inscrite ans un rectangle dont x et y sont les coordonnées du point supérieur gauche, l la largeur et h la hauteur. h et l sont de type double.

Tracé d'un arc d'ellipse

 gc.strokeArc(x,y,l,h)
ou
 gc.fillArc(x,y,l,h,depart,angle,fermeture)
L'arc est une portion de l'ellipse inscrite ans un rectangle dont x et y sont les coordonnées du point supérieur gauche, l la largeur et h la hauteur. h et l sont de type double.
L'arc est tracé à partir de la position "depart", avec une amplitude angulaire "angle". "depart" et "angle" sont de type double, exprimés en degrés, l'origine et le sens positif sont ceux du cercle trigonométrique.
Le paramètre "fermeture" peut prendre l'une des trois valeurs suivantes : ArcType.OPEN (pas de fermeture), ArcType.CHORD (fermeture par une ligne droite), ArcType.ROUND (fermeture passant par le centre de l'ellipse, en "part de tarte")

Exemple : les lignes

gc.fillOval(280, 250, 200, 100);
gc.strokeArc(280, 250, 200, 100, 0, 60, ArcType.OPEN);
gc.strokeArc(280, 250, 200, 100, 70,40 , ArcType.ROUND);
gc.strokeArc(280, 250, 200, 100, 155,50 , ArcType.CHORD);
donnent le résultat suivant :

fillArc(double x, double y, double w, double h, double startAngle, double arcExtent, ArcType closure) Fills an arc using the current fill paint. void fillOval(double x, double y, double w, double h) Fills an oval using the current fill paint. void fillPolygon(double[] xPoints, double[] yPoints, int nPoints) Fills a polygon with the given points using the currently set fill paint. void fillRect(double x, double y, double w, double h) Fills a rectangle using the current fill paint. void fillRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight) Fills a rounded rectangle using the current fill paint. void

 
Licence Creative Commons
licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé
Auteur : Nathalie Bonnin
Professeur de Physique, Chimie, Informatique au lycée La Martinière Monplaisir (Lyon 8ème)
Contact :
nathalie.bonnin (chez) scientillula.net
Licence Creative Commons
La totalité du contenu du site Scientillula.net appartient à Nathalie Bonnin et est mise à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé