Comment puis-je échelle d'un rectangle à la taille maximale possible dans un autre rectangle?

J'ai un rectangle source et un rectangle de destination. J'ai besoin de trouver le maximum de l'échelle à laquelle la source peut être réduite tout en s'inscrivant dans le rectangle de destination et en conservant son aspect d'origine.

Google a trouvé un façon de le faire mais je ne suis pas sûr si cela fonctionne dans tous les cas. Ici est ma maison brassée solution:

  • Calculer la Hauteur/Largeur de chaque rectangle. Cela donne les pentes des diagonales msrc et mdest.
  • Si msrc < mdst, à l'échelle de la source de largeur pour s'adapter à la destination largeur (et de la hauteur de l'échelle par le même ratio)
  • Contraire, l'échelle de la source de hauteur pour s'adapter à la destination hauteur (et de la largeur de l'échelle par le même ratio)

À la recherche d'autres solutions possibles à ce problème. Je ne suis même pas sûr si mon algorithme fonctionne dans tous les cas!