Grafika i komunikacja człowieka z komputerem

15
Grafika i komunikacja człowieka z komputerem Przekształcenia geometryczne – grafika 2D

description

Grafika i komunikacja człowieka z komputerem. Przekształcenia geometryczne – grafika 2D. Wprowadzenie. - PowerPoint PPT Presentation

Transcript of Grafika i komunikacja człowieka z komputerem

Page 1: Grafika i komunikacja człowieka z komputerem

Grafika i komunikacja człowieka z komputerem

Przekształcenia geometryczne – grafika 2D

Page 2: Grafika i komunikacja człowieka z komputerem

Wprowadzenie• Przekształcenie, odwzorowanie geometryczne – funkcja

przekształcająca jeden zbiór punktów, nazywany figurą geometryczną, w drugi zbiór punktów w przestrzeni geometrycznej (przestrzeni euklidesowej, przestrzeni rzutowej itp.).

• W węższym znaczeniu jest to funkcja wzajemnie jednoznaczna przeprowadzająca przestrzeń geometryczną na siebie; ta druga definicja jest stosowana dla przekształceń geometrycznych tworzących grupy przekształceń.

• O ile nie jest to powiedziane wprost, zwykle w elementarnej geometrii przyjmuje się, że przekształceniem geometrycznym jest funkcja określona na całej przestrzeni euklidesowej, zaś figurami geometrycznymi są figury płaskie lub figury przestrzenne. Najczęściej przyjmuje się, że przekształcenia geometryczne są niezdegenerowane, tzn. różnowartościowe lub wzajemnie jednoznaczne.

Page 3: Grafika i komunikacja człowieka z komputerem

Wprowadzenie• Punkt A' nazywamy obrazem punktu A w przekształceniu geometrycznym p, jeżeli p(A) = A'. • Figurę, która jest zbiorem obrazów wszystkich punktów figury f w danym przekształceniu geometrycznym p,

nazywamy obrazem figury f w przekształceniu geometrycznym. • Punkt stały przekształcenia jest to punkt, który sam jest swoim obrazem w tym przekształceniu • Jeśli p i q są przekształceniami geometrycznymi, to złożenie funkcji p°q nazywamy złożeniem przekształceń

geometrycznych p i q. • Przekształcenie p nazywamy odwracalne, jeżeli dwu różnym punktom przyporządkowane są zawsze dwa różne

punkty • Przekształceniem odwrotnym do przekształcenia odwracalnego p nazywamy przekształcenie p-1 takie, że dla

każdego punktu A p(A) = A' wtedy i tylko wtedy, gdy p-1(A') = A. • Przekształceniem tożsamościowym nazywamy przekształcenie, które każdemu punktowi przyporządkowuje ten

sam punkt. • Izometrią nazywamy przekształcenie geometryczne, które zachowujące odległość punktów, tzn. dla każdych dwóch

punktów odległość ich obrazów jest równa odległości tych punktów. • Figury f i g nazywamy przystające wtedy i tylko wtedy, gdy istnieje izometria p taka, że p(f) = g. Inaczej, dwie figury

są przystające, jeżeli jedną z tych figur można nałożyć na drugą. Oznaczamy f ≡ g.• Rodzaje przekształceń 2D:

– Translacja, – Obrót (względem środka układu, dowolnego punktu), – Skalowanie, – Jednokładność, – Powinowactwo prostokątne (symetria), – Inne (dzielenie wielokąta na trójkąty, badanie położenie punktu względem wielokąta),.

Page 4: Grafika i komunikacja człowieka z komputerem

Przekształcenia geometryczne• Zostaną omówione transformacje obiektów

graficznych. Transformacje będą dotyczyły pojedynczych punktów, gdyż obiekty są najczęściej opisane jako zbiór punktów. Można również zajmować się transformacjami dotyczącymi np. równań algebraicznych.

• Punkty na płaszczyźnie określa się podając ich współrzędne, np. współrzędne kartezjańskie -czasem może to być inny układ, np. układ współrzędnych biegunowych. W grafice komputerowej ważna jest umiejętność przekształcania danego obiektu, ale również umiejętność opisu tego obiektu w różnych układach współrzędnych.

Page 5: Grafika i komunikacja człowieka z komputerem

Przekształcenia punktu na płaszczyźnie

• A.Translacja -przesunięcie punktu o współrzędnych P=(x,y) o dany wektor t=(tx,ty). Otrzymujemy nowy punkt P’=(x’,y’), którego współrzędne są postaci:. – x’=x+tx, y’=y+ty.

Page 6: Grafika i komunikacja człowieka z komputerem

Przekształcenia punktu na płaszczyźnie

• B.Obrót - obrót punktu wokół początku układu o kąt f. W układzie biegunowym współrzędne tego punktu są zapisane jako P=(rcos,rsin), rys poniżej.

• Po obrocie o dany kąt f otrzymujemy nowe współrzędne

P’=(rcos(+),rsin(+))==(rcoscos-rsinsin,

rcossin+rsincos)= =(xcos-ysin, xsin+ycos)

Page 7: Grafika i komunikacja człowieka z komputerem

Przekształcenia punktu na płaszczyźnie

• Jeżeli chcemy wykonać obrót o kąt a nie wokół początku układu lecz wokół dowolnego punktu (x,y) to należy przesunąć punkt (x,y) o wektor [-x0,-y0], obrócić przesunięty punkt P(x-x0,y-y0) o dany kąt f i powtórnie przesunąć obrócony punkt o wektor [x0,y0].

• Ponieważ takie złożone operacje są wykonywane często, to w praktyce łatwiej stosować zapis macierzowy. Np. translację zapisujemy jako:

x y x y

tx ty

' , ' , , ,1 1

1 0 0

0 1 0

1

Page 8: Grafika i komunikacja człowieka z komputerem

Przekształcenia punktu na płaszczyźnie

• a obrót jako:

• Przy takich założeniach obrót wokół dowolnego punktu (x0,y0) możemy zapisać jako:

• lub krócej P’=PT1RT2.

x y x y' , ' , , ,

cos sin

sin cos1 1

0

0

0 0 1

100

010

001

100

0cossin

0sincos

100

010

001

1,,1,','

yxyx

yxyx

Page 9: Grafika i komunikacja człowieka z komputerem

Przekształcenia punktu na płaszczyźnie

• C. Skalowanie - współrzędne punktu P=(x,y) mnożymy przez czynnik skalujący (sx,sy). Macierzowo zapisujemy:

• Np. kwadrat jednostkowy o wierzchołkach [(0,0), (1,0), (1,1), (0,1)] przeskalowany o wektor [1/2,2] daje prostokąt o wierzchołkach [(0,0), (1/2,0), (1/2,2), (0,2)].

x y x y

sx

sy' , ' , , ,1 1

0 0

0 0

0 0 1

Page 10: Grafika i komunikacja człowieka z komputerem

Przekształcenia punktu na płaszczyźnie

• D. Jednokładność - jednokładność o środku S=(x0,y0) i skali k<>0 jest takim przekształceniem płaszczyzny, w którym obrazem punktu P=(x,y) jest taki punkt P’=(x’,y’), gdzie SP’=kSP.

• Stąd np. dla x mamy: x0-x’=k(x0-x).

• Zatem (x’,y’)=(x0,y0)+k(x-x0,y-y0) = (kx,ky)+(x0-kx0,y0-ky0) lub w notacji macierzowej:

• Np. jeżeli S(1,2), P(2,2) i k=-1 to P’(0,2). Dla k=-1 jednokładność jest symetrią o środku w punkcie S.

x y x y

k

k

k x k y

' , ' , , ,

( ) ( )

1 1

0 0

0 0

1 0 1 0 1

Page 11: Grafika i komunikacja człowieka z komputerem

Przekształcenia punktu na płaszczyźnie

Działania na wielokątach

Page 12: Grafika i komunikacja człowieka z komputerem

Położenie punktu względem wielokąta

• O wielokątach będziemy zakładali, że są wielokątami zwykłymi, tzn. takimi, których krawędzie nie mają punktów wspólnych poza wierzchołkami oraz będziemy zakładali, że żadne trzy wierzchołki nie są współliniowe.

• Położenie punktu względem wielokąta. Jest to zadanie geometrii obliczeniowej. Istnieje wiele algorytmów; jednym z nich jest algorytm parzystości. Polega on na tym, że: – dany jest punkt P=(x0,y0) i dane są wierzchołki wielokąta, – z punktu P prowadzimy dowolną półprostą (może być np. równoległa do osi x -

dla prostoty rozważań), – znajdujemy liczbę n punktów przecięcia tej półprostej z bokami wielokąta, – jeśli liczba jest parzysta, to P leży na zewnątrz wielokąta W, a gdy jest

nieparzysta, to wewnątrz niego. • Innym możliwym rozwiązaniem zadania badania położenia punktu

względem wielokąta jest obliczanie sumy kątów między półprostymi poprowadzonymi z punktu P przez wierzchołki wielokąta.

Page 13: Grafika i komunikacja człowieka z komputerem

Położenie punktu względem wielokąta

• Uwagi:– dla znalezienia liczby n nie musimy wyznaczać punktów przecięcia

wszystkich krawędzi wielokąta z półprostą. Krawędzie dla których zachodzi max(xi,xi+1)<x0 możemy pominąć, a te dla których zachodzi min(xi,xi+1)>x0, przecinają prostą, gdy (yi-y0)*(yi+1-y0)<0,

– jeżeli prosta przechodzi przez wierzchołek (np. przez wierzchołek B o bokach AB i BC), jeżeli A i C leżą po różnych stronach A i C to przecięcie liczymy jako jednokrotne, a gdy A i C leżą po tej samej stronie półprostej to przecięcie liczymy dwukrotnie.

– jeżeli półprosta zawiera jeden z boków wielokąta, (np. AB, BC, CD, BC jest na półprostej) to krawędź BC traktujemy jako jeden tzw. pseudowierzchołek i jeżeli A i D leżą po przeciwnej stronie prostej to liczymy przecięcie jako jeden, a jeżeli po tej samej, to liczymy je jako dwa.

Page 14: Grafika i komunikacja człowieka z komputerem

Wyznaczanie powłoki wypukłej wielokąta.

• Definicja zbioru wypukłego: zbiór Z nazywamy wypukłym, jeżeli zawiera wszystkie odcinki, których końcami są dowolne punkty ze zbioru Z.

• Definicja powłoki wypukłej. Powłoką wypukła nazywamy najmniejszy zbiór wypukły, do którego należą dane punkty.

• Algorytm Grahama wyznaczania powłoki wypukłej n punktów.– dane: punkty Pi=(xi,yi), i=1,2,...,n,– wyszukujemy punkt o najmniejszej współrzędnej, oznaczamy go jako Pi1,– porządkujemy punkty zgodnie z malejącymi wartościami kątów ai, obliczając:– tg(ai)=(xi-xi1)/(yi-yi1). Otrzymujemy nowe uporządkowanie, oznaczamy je jako

i1,i2,...,in.– tworzymy listę Pl1, Pl2, ... Plk wierzchołków wielokąta będącego powłoką

wypukła następująco:• na początku przyjmujemy: l1=i1, l2=i2, l3=i3 i podstawiamy k=3,• dla j=4,5,...,n• (*) jeśli para wektorów Plk-1Plk, PlkPlj jest ujemnie zorientowana, to usuwamy z

listy wierzchołek Plk, podstawiamy k=k-1, przenumerowujemy listę i wracamy do (*), w przeciwnym razie dopisujemy Pij do listy, czyli podstawiamy k=k+1, lk=ij.

Page 15: Grafika i komunikacja człowieka z komputerem

Wyznaczanie powłoki wypukłej wielokąta.

• Uwagi:– Jeżeli punktów o minimalnej współrzędnej y jest więcej niż jeden, to

dowolny z takich punktów zaburzamy podstawiając yi1=yi1*(1+h), gdzie h jest najmniejszą liczbą rzeczywistą dodatnią.

– Jeśli ctg()=ctg(j)= ...=ctg(m) (punkty są współliniowe), to pomijamy wszystkie punkty, z wyjątkiem punktu leżącego najdalej.

– Para wektorów PiPj, PjPk jest dodatnio zorientowana, gdy wyznacznik

– jest dodatni, a ujemnie zorientowana, gdy jest on ujemny.

( , , )i j k x x x

y y yi j k

i j k

1 1 1