Bonjour,
J'essaie de dessiner les fleches d'un graphe orienté. Pour ce faire, je calcule le point d'intersection entre le cercle représentant le noeud "tête" et la droite représentant l'arc.
Voici le code :
Bien-sûr j'ai fait les calculs à la main. Le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18//equation de la droite : //y = a * x + b double a = (yq - yt) / (xq - xt); double b = yq - a * xq; //equation du cercle //(x - xt)² + (y - yt)² = rt² //Points d'intersection double A = 1 + a * a; double B = - 2 * xt + 2 * a * b - 2 * a * yt; double C = xt * xt + b * b - 2 * b * yt + yt * yt - rt * rt; double delta = B * B - 4 * A * C; double x0 = (- B - sqrt(delta)) / 2 * A; double x1 = (- B + sqrt(delta)) / 2 * A; double y0 = a * x0 + b; double y1 = a * x1 + b;
Soit les calculs sont faux, soit il y a un probème avec les arrondis liés aux double, soit je sais pas !

 

 
		
		 
         
 

 
			
			

 
   


 Graphe
 Graphe
				
 Répondre avec citation
  Répondre avec citation







 
  
  
 
 
			 
			 
    
						
Partager