¿Cómo puedo escalar un rectángulo al tamaño máximo posible dentro de otro rectángulo?

Tengo un rectángulo de origen y un rectángulo de destino. Necesito encontrar la escala máxima a la que se puede escalar la fuente mientras se ajusta dentro del rectángulo de destino ymanteniendo su relación de aspecto original.

Google encontróuno Manera de hacerlo pero no estoy seguro si funciona en todos los casos. Aquí está mi solución casera:

Calcula Altura / Ancho para cada rectángulo. Esto da las pendientes de las diagonales.msrc&nbsp;ymdest.Simsrc < mdstfuente de escalaanchura&nbsp;para adaptarse al destinoanchura&nbsp;(y altura de escala en la misma proporción)De lo contrario, fuente de escala.altura&nbsp;para adaptarse al destinoaltura&nbsp;(y ancho de escala en la misma proporción)

Buscando otras posibles soluciones a este problema. ¡Ni siquiera estoy seguro de si mi algoritmo funciona en todos los casos!