Géométrie: point d'ancrage

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: Escarpe

Bonjour,

J'ai un petit problème de géométrie avec un programme informatique à vous soumettre.

Des éléments graphiques sont diposés dans un espace de coordonnées de (0,0) en haut à gauche à (L,H) en bas à droite.
Je ne considère que les rectangles englobants de ces éléments pour simplifier.
Je dispose du point en haut à gauche de chaque rectangle (x0,y0) et du point en bas à droite (x1,y1).

Je souhaite positionner chaque rectangle dans un autre espace de coordonnées de (0,0) à (L',H') sans altérer son rapport hauteur/largeur et en conservant sa position relative.
Sur ce dernier point, un rectangle ayant x0=0 doit avoir x0'=0 et s'il a x1=L alors x1'=L'.

De mon point de vue, cela correspond à un "point d'ancrage" du rectangle par rapport à son espace de coordonnées.

J'ai déjà obtenu une méthode de calcul mais elle n'est pas satisfaisante.

Pour résumer, j'ai considéré comme point d'ancrage le point qui dispose en abscisse de l'abscisse du point d'intersection des droites (0,0)-(x0,y0) et (L,0)-(x1,y0), et en ordonnées de l'ordonnée du point d'intersection des droites (0,0)-(x0,y0) et (0,H)-(x0,y1).

Tout calcul fait, dans le premier espace, j'arrive à un point d'ancrage de coordonnées:
xp=L*x0/(L-x1+x0)
yp=H*y0/(H-y1+y0)

Ensuite il suffit de passer le point d'ancrage dans le second espace puis de déterminer les nouvelles coordonnées du rectangle depuis ce point.

Le problème majeur, on le voit bien dans les équations de xp et yp, survient lorsque de x0 tend vers 0 et x1 tend vers L par exemple.

Voyez-vous une autre approche du problème qui ne soit pas sensible aux rectangles qui sont de largeur L ou de hauteur H tout en conservant l'ancrage des éléments ? (pour le problème de l'ancrage, on identifie visuellement les ancrages sur les bords et au centre d'une image)

NB: La méthode étant destinée à être utilisée en informatique, les calculs doivent pouvoir être approchés sans perte important de résolution.



Posted by: Escarpe

Cela ne vous inspire pas, je vais poser le problème différemment:
soient un segment AB et un segment CD tels que:On cherche l'abscisse du point E intersection des droites AC et BD, avec une solution peu sensible lorsque x_C tend vers x_A et x_D tend vers x_B, c'est à dire que l'on doit pouvoir calculer cette abscisse (proche de \frac{x_B+x_A}{2}) en évitant des calculs intermédiaires introduisant des arrondis importants ou utilisant des grands nombres (application informatique oblige).

Une fonction définie par parties est tout à fait acceptable si les domaines sont bien identifiés.

Dans mon précédent message, j'expliquais que pour (x_D-x_C)<0,8(x_B-x_A) (0,8 étant une estimation empirique), on pouvait utiliser la formule suivante: x_E=\frac{x_B.x_C}{x_B-x_D+x_C} si on prend (x_A,y_A)=(0,0)











-