Bonjour,
Arrivé à la fin d'un projet en Java, il y a quelque chose que j'ai beaucoup de mal à faire ...
Le projet est un réseau phrastique (des phrases, et des relations entre elles), bref.
Je trace des flèches avec Graphics pour relier les relations à leurs phrases. Cependant, je n'arrive pas à dessiner le triangle au bout de la flèche (l'orienter).
J'ai à disposition, le point de départ (x,y), et le point d'arrivée (x,y).
J'ai commencé par faire ça :
(x1, y1), point de départ de la flèche
(x2, y2), point d'arrivée de la flèche où je dois dessiner le triangle.
public void dessinerTriangle(Graphics g, int x1, int y1, int x2, int y2) {
/*int px[] = {0, 15, 7};
int py[] = {15, 15, 0};
Graphics2D g2d = (Graphics2D)g.create();
AffineTransform at = g2d.getTransform();
double angle = Math.atan2((double)(y2-y1), (double)(x2-x1));
at.translate(x2, y2);
at.rotate(angle-(Math.PI/2));
g2d.setTransform(at);
g2d.fillPolygon(px, py, 3);
g2d.dispose();
while (px[2] != x2) {
px[0]++;
px[1]++;
px[2]++;
}
while (py[2] != y2) {
py[0]++;
py[1]++;
py[2]++;
}*/
[b]int x, y;
x = (int) (0.1*(x2-x1) + x1);
y = (int) (0.1*(y2-y1) + y1);[/b]
}
puis ensuite, je voudrais effectuer la rotation du point (x,y), qui, est en fait un point sur la droite reliant (x1,y1) à (x2,y2), éloigné de un dixième de la longueur de cette flèche, du point d'arrivée.
Reste ensuite, à créer les deux points (du triangle), qui seraient une rotation de trente degrés (aiguille d'une montre et sens inverse) du point (x,y), à partir du centre de rotation (x2,y2).. Or , sur internet, je ne trouve que des formules avec des nombres complexes !! et je ne sais pas comment les utiliser à travers l'api java..
J'ai fait d'autres tentatives avant (en commentaire), mais je n'arrivais pas à aller jusqu'ua bout !
Merci de m'aider si vous avez une idée !