Linia przecina prostokąt - jak znaleźć punkty krzyżowe?
Rysuję prostokąt na płótnie i linię od środka prostokąta do jakiegoś losowego punktu w przestrzeni współrzędnych.
Teraz chcę skrócić linię o długość, która jest wewnątrz prostokąta, tak aby linia zaczynała się od krawędzi prostokąta.
Jak mogłem to zrobić?
Przykład
Prostokąt może być zdefiniowany przez 2 punkty:Pstart(1, 3)
, Pend(3, 1)
Punkt środkowy można obliczyć w następujący sposób:P(2, 2)
Teraz narysuj linię odP(2, 2)
doQ(10, 2)
.Ponieważ wiem, że szerokość prostokąta wynosi 2, mogę powiedzieć, że linia zaczyna się odP(4, 2)
zamiastP(2, 2)
.
Staje się to bardziej skomplikowane, gdy punkt nie jest równoległy do jednej z osi XY. Ponadto długość wewnątrz prostokąta będzie różna dla linii ukośnych.
Jak obliczyć przesunięcie początkowe dla punktu linii względem środka prostokąta i punktu końcowego linii?
Prawdopodobnie musiałbym znaleźć punkt, w którym linia przekroczyłaby prostokąt, a następnie pozwolić, aby linia zaczęła się w punkcie przecięcia. Ale jak mogłem zdobyć ten punkt?