Graphismes avec Java FX

Dessin du cadran (3)

Ecriture des chiffres.

Pour positionner les chiffres autour du cadran, un peu à l'extérieur du cercle formé par les disques, on ajoute à traceCadran les lignes

  gc.setFill(Color.BEIGE);
  gc.fillText("0",0,-rayon-20);
  gc.fillText("15", rayon+20, 0);
  gc.fillText("30",0, rayon+20);
  gc.fillText("45", -rayon-20, 0);

Tel quel le résultat n'est cependant pas très satisfaisant car les chiffres sont petits, et ne sont pas bien alignés par-rapport aux disques.
Avant les 5 lignes précédentes, ajouter :

 gc.setFont(new Font(20));
ce qui permet d'obtenir des chiffres plus grands
Le problème d'alignement vient de ce que par défaut les coordonnées d'un texte sont les positions du bord gauche et de la ligne de base du texte. Ici il serait plus judicieux que le texte soit centré sur la position indiquée.
Insérer pour cela juste après la ligne gc.setFont... les lignes
   gc.setTextAlign(TextAlignment.CENTER);
   gc.setTextBaseline(VPos.CENTER);
La premiere ligne permet de centrer le texte horizontalement, la deuxième, verticalement.

Tracé de l'aiguille

L'aiguille va être tracée comme une simple ligne. On va indiquer la couleur de tracé et l'épaisseur de la ligne, avant de la tracer en utilisant le paramètre "inclinaison" et les fonctions sinus et cosinus.

Sous JavaFX le sens croissant des angles est le sens des aiguilles d'une montre, ce qui est pratique ici, et l'origine est la même que pour le cercle trigonométrique.
Afin que la valeur 0 du paramètre "inclinaison" correspondent à la position "0", on va lui enlever π/2 avant de faire le tracé.

On ajoute donc à traceCadran les lignes

 	
  gc.setStroke(Color.color(0.8,0.9,1));
  gc.setLineWidth(4);
  inclinaison=inclinaison-Math.PI/2;
  gc.strokeLine(0,0,lAiguille*Math.cos(inclinaison),lAiguille*Math.sin(inclinaison));	
La première ligne indique la couleur (ici une couleur personnalisée désignée par ses trois composantes rouge, vert, bleu), la seconde l'épaisseur du trait.
La dernière trace l'aiguille.

La méthode traceCadran est maintenant complète, on peut la tester en lançant le programme. Il ne reste plus qu'à réaliser l'animation.

 
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é