J'ai un point A, un Point B
Je les joins via une ligne
À partir du point A, environ 30% j'ai un point C
À partir de ce point C, je veux créer une ligne de longueur l qui serait perpendiculaire à AC
je cherche a pouvoir faire tourner la ligne par rapport au Point A, faudrait donc que la perpendiculaire suive
A(x,y)
B(x,y)
j'ai généré mon point 3 de cette façon
j'utilise y=mx + b
m = (By-Ay) / (Bx-Ax)
il doit avoir une autre façon de calculer la pente?
car il y a possiblité d'avoir une division par zéo
b = By-m*Bx
Cx = Ax * .3 + Ax
Cy = m * Cx + b
Après avoir le point C, je créé le point D et E qui sont la ligne qui passe par le point C qui est perpendiculaire à AB
Dx= Cx + .3 * (Cy - Ay)
Dy= Cy - .3 * (Cx - Ax )
Ex= Cx - .3 * (Cy - Ay)
Ey= Cy + .3 * (Cx - Ax )
la distance entre CD et CE varie... il doit avoir un moyen pour qu'elle reste fixe
Après les points sont lié
ça fonctionne plus ou moins...
sur le premier schéma c'est ok..
http://imagebin.ca/view/3RuTcO6.html mais sur le deuxième, on remarque que la ligne de la perpendiculaire n'est pas au bon endroit et elle grossit alot qu'elle devrait rester à la même longueur
http://imagebin.ca/view/UXxh13w.html autrement j'ai tenté une autre approche, il y a moins de calcul...
j'ai toujours mon point A et B
je calcul mon point C
Cx = Ax + .3 * (Bx-Ax)
Cy = Ay + .3 * (By-Ay)
Ensuite afin que mon point C reste fixe lorsque je fais tourner la ligne AB je fais
longueurFraction = 50 / distance entre A et C
50 car je voudrais que la longueur de ma droite perpendiculair est 50
Cx' = Ax + (Cx - Ax) * longueurFraction
Cy' = Ay + (Cy - Ay) * longueurFraction
ensuite à partir du point C' je fait une ligne vers le haut et une autre vers le bas... ainsi j'ai ma perpendiculaire
voici la façon que je procède
Dx = Cx' + .3 * (C'y-Cy)
Dy = Cy' - .3 * (C'x-Cx)
Ex = Cx' - .3 * (C'y-Cy)
Ey = Cy' + .3 * (C'x-Cx)
ce qui donne le résultat du premier lien
ensuite si je veux dessiner une autre perpendiculaire, parallèle à l'autrement j'utilise la même technique
mais au lieu de partir de A je pars de C pour faire la perpendiculaire... sauf que j'ai pas le résultat escompté
ça donne le résultat du troisième lien
http://imagebin.ca/view/lxmprKJk.html on peut remarquer que la deuxième ligne est vraiment trop loin de la première
une idée d'où est le problème
dans les deux approches que j'ai présenté, est-ce qu'il y en a une meilleur que l'autre?
suis-je sur la bonne piste?