Robiłem to zadanie jakiś czas temu i wyglądało to mniej więcej tak:
- Zakładamy że a>=b i c>=d (jeśli dane są inne to sobie zmieniamy miejscami zmienne)
- Sprawdzamy czy w oczywisty sposób drugi prostokąt się mieści w pierwszym (oba wymiary są mniejsze)
- Sprawdzamy czy w oczywisty sposób prostokąt się nie mieści (oba wymiary są za duże)
- Jeśli prostokąty nie mieszczą się w oczywisty sposób (c>a lub d>b) to wtedy obracamy drugi prostokąt tak jak na rysunku:
Czyli tak żeby wierzchołki E, H i G leżały na bokach pierwszego prostokąta. Numer polega na tym żeby sprawdzić czy punkt F leży wewnątrz prostokąta.
Można zauważyć że trójkąty AEH i HGD są podobne więc
c/z = d/x
ponieważ wszystko jest dodatnie więc można to równanie stronami podnieść do kwadratu czyli
c^2/z^2 = d^2/x^2
dalej z twierdzenia Pitagorasa wiemy że
z^2 = c^2-t^2
oraz że t= b-x
czyli
c^2/(c^2-(b-x)^2) = d^2/x^2
W tym równaniu tylko x jest niewiadomą i po jego uproszczeniu mamy równanie kwadratowe.
Rozwiązujemy to równanie i otrzymujemy ładny x (który musi spełnić warunek x<b)
Jak mamy x, to możemy obliczyć y, z, t i możemy sprawdzić czy punkt F mieści się w prostokącie. Warunek jaki musi być spełniony to y+z <a.