« poprzedni punkt | następny punkt » |
W tym punkcie wykładu zajmiemy się
badaniem prostych zależności między obiektami geometrycznymi jakimi są
punkt, prosta i wektor. Dobór problemów nie jest
przypadkowy: poruszymy te problemy elementarne, które pojawią się
w następnych punktach, gdzie będzie mowa o jednym z centralnym
problemów geometrii obliczeniowej, jakim jest problem otoczki wypukłej.
Okazuje się, że większość z nich można rozwiązać za pomocą operacji
produktu wektorowego i/lub wykorzystując jego właściwości. Stąd tytuł
tego punktu.
Niech p1 i p2
będą dwoma punktami na
płaszczyźnie, p1 = (p1.x, p1.y), p2
= (p2.x, p2.y). Iloczynem wektorowym wektorów
zaczepionych w początku układu współrzędnych i o końcach odpowiednio w
punktach p1 i p2 jest wektor x = p1
´ p2 prostopadły
do obu wektorów, taki że trójka uporządkowana p1, p2 , x ma orientację dodatnią
oraz długość wektora x, |x| = |p1| *|p2| * sin j gdzie
j jest
kątem między tymi wektorami.
Dla celów tego wykładu, najważniejsza okazuje się interpretacja wartości | p1 x p2|, jako pola równoległoboku, utworzonego przez punkty (0,0), p1, p2, i p1+ p2, opatrzonego znakiem, por. rysunek 13. 3(a), oraz fakt, że wartość tego pola można wyliczyć jako wartość wyznacznika utworzonego przez współrzędne wektorów p1 i p2.
Problem I Jak porównać dwa kąty nie licząc ich wartości? Niech sytuacja
będzie taka jak przedstawiono na rysunku 13.4a. Który z
kątów (p1,p0,p),
czy (p2,p0,p) jest większy? Wystarczy
stwierdzić jakie jest wzajemne położenie wektorów p0p1 i p0p2. Liczymy w tym celu
wyznacznik det (p1- p0, p2 - p00).
Jeżeli jego znak jest dodatni,
to kąt(p2 p0 p) jest większy niż
kąt( p1p0p).
Problem II Niech będą dane punkty tworzące wielokąt wypukły, por. rysunek 13.3c. Jak sprawdzić, czy dany punkt jest, czy nie jest we wnętrzu tego wielokąta? Wystarczy w tym celu sprawdzić, czy dany punkt jeży na lewo od prostych będących przedłużeniem boków wielokąta idąc wzdłuż krawędzi w kierunku od p0 do p3. Punkt p na rysunku 13.4(b) spełnia ten warunek, a punkt p' nie spełnia. Wprawdzie leży na lewo od wektorów p0p1, p1p2, p2p3, ale jest na prawo od prostej wyznaczonej przez krawędź p2p3.
Zauważmy, że sprawdzenie, po której stronie prostej leży dany punkt ma koszt
stały, ale w przypadku problemu sprawdzenia czy dany punkt leży wewnątrz
wielokąta wypukłego, wymaga wykonania liczby kroków równej liczbie krawędzi
wielokąta.
Pytanie 2: Rozważmy trzy punkty na płaszczyźnie (0,1), (1,0),
(3,3). Czy punkt (2,2.5) leży wewnątrz, czy na zewnątrz trójkąta utworzonego przez te
punkty?
« poprzedni punkt | następny punkt » |