Bonjour !
Je fais du développement et essaye de rattraper mes lacunes en maths.
Je travaille actuellement sur un point devant se déplacer dans un espace 2D et je rencontre un problème.
Un peu de contexte inutile :
L'utilisateur fournit un tableau de positions 2D. On imagine chaque point relié au suivant, et le dernier au premier, afin d'aboutir à une forme géométrique.
L'utilisateur contrôle un point qu'il peut déplacer, mais qui ne doit pas sortir de cette forme.
A chaque fois qu'il se déplace, je regarde si la nouvelle position est valide (à l'intérieur de la forme).
Si elle l'est, j'autorise le déplacement. Sinon, je le refuse.
Cependant cette méthode cause un problème : arrivé proche d'un segment de la forme, l'utilisateur s'arrêtera net et ne pourra pas "glisser" sur les bords de la forme. Il me faut donc un moyen de corriger sa position.
D'où ma question :
Les segments [AB] et [CD] ont une intersection en E.
Je connais les positions des points A, B, C et D.
A partir des positions de ces quatre points, comment déterminer la position du point F tel que [DF] coupe [AB] perpendiculairement en F ?
Image : https://ibb.co/mvJVJCt
Ici [AB] représente un segment de la forme.
Le point C la position actuelle de l'utilisateur, le point D sa position souhaitée.
Le point F correspond à sa position souhaitée une fois corrigée.
J'espère que tout est clair, merci de bien vouloir m'éclaircir !