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.