Algorytm SAT. Marek Zając 2012. Zabrania się rozpowszechniania całości lub fragmentów niniejszego tekstu bez podania nazwiska jego autora.



Podobne dokumenty
PODSTAWOWE KONSTRUKCJE GEOMETRYCZNE

7. PLANIMETRIA.GEOMETRIA ANALITYCZNA

Co należy zauważyć Rzuty punktu leżą na jednej prostej do osi rzutów x 12, którą nazywamy prostą odnoszącą Wysokość punktu jest odległością rzutu

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 1

KONKURS ZOSTAŃ PITAGORASEM MUM. Podstawowe własności figur geometrycznych na płaszczyźnie

W. Guzicki Zadanie 21 z Informatora Maturalnego poziom rozszerzony 1

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI poziom rozszerzony

GEOMETRIA ELEMENTARNA

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

9. Podstawowe narzędzia matematyczne analiz przestrzennych

11. Znajdż równanie prostej prostopadłej do prostej k i przechodzącej przez punkt A = (2;2).

Definicja obrotu: Definicja elementów obrotu:

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 3

GEOMETRIA PRZESTRZENNA (STEREOMETRIA)

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki

Geometria analityczna

Inwersja na płaszczyźnie, własności, konstrukcje, zastosowania

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Pytania do spr / Własności figur (płaskich i przestrzennych) (waga: 0,5 lub 0,3)

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

Geometria wykreślna. 5. Obroty i kłady. Rozwinięcie wielościanu. dr inż. arch. Anna Wancław. Politechnika Gdańska, Wydział Architektury

Animowana grafika 3D. Opracowanie: J. Kęsik.

Rodzina i pas płaszczyzn sieciowych

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Ćwiczenia z Geometrii I, czerwiec 2006 r.

Odcinki, proste, kąty, okręgi i skala

6 Grafika 2D. 6.1 Obiekty 2D

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI LISTOPAD 2010 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

SPRAWDZIAN PO KLASIE 1. ROZSZERZENIE

Wymagania programowe uporządkowane według poziomów wymagań na pierwszy semestr MATEMATYKA 2001 KLASA 4

Czym jest wykrywanie kolizji. Elementarne metody detekcji kolizji. Trochę praktyki: Jak przygotować Visual Studio 2010 do pracy z XNA pod Windows

Podstawowe pojęcia geometryczne

Wymagania edukacyjne z matematyki w klasie IV

Kryteria oceniania z matematyki KLASA 2

3. FUNKCJA LINIOWA. gdzie ; ół,.

Matematyka podstawowa VII Planimetria Teoria

- pozorny, czyli został utworzony przez przedłużenia promieni świetlnych.

Skrypt 14. Figury płaskie Okrąg wpisany i opisany na wielokącie. 7. Wielokąty foremne. Miara kąta wewnętrznego wielokąta foremnego

Spis treści. Wprowadzenie. Porównywanie elementów Posługiwanie się liczbami. Orientacja przestrzenna

Praktyczne przykłady wykorzystania GeoGebry podczas lekcji na II etapie edukacyjnym.

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Temat: Modelowanie 3D cewki uzwojenia stojana silnika skokowego

WOJEWÓDZKI KONKURS MATEMATYCZNY

Wymagania edukacyjne z matematyki niezbędne do uzyskania poszczególnych ocen semestralnych klasa VI

Zabawa z odległościami

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KL.I

Zadania do samodzielnego rozwiązania zestaw 11

PRZEKROJE RYSUNKOWE CZ.1 PRZEKROJE PROSTE. Opracował : Robert Urbanik Zespół Szkół Mechanicznych w Opolu

w jednym kwadrat ziemia powietrze równoboczny pięciobok

I. Funkcja kwadratowa

Temat: Wielokąty foremne- pola i obwody wielokątów foremnych.

Wymagania na poszczególne oceny z matematyki do klasy 4 a) Wymagania konieczne (na ocenę dopuszczającą) obejmują wiadomości i umiejętności

EGZAMIN MATURALNY OD ROKU SZKOLNEGO 2014/2015 MATEMATYKA POZIOM PODSTAWOWY ROZWIĄZANIA ZADAŃ I SCHEMATY PUNKTOWANIA (A1, A2, A3, A4, A6, A7)

Liniowe Zadanie Decyzyjne model matematyczny, w którym zarówno funkcja celu jak i warunki

Wymagania edukacyjne z matematyki w klasie IV

ODLEGŁOŚĆ NA PŁASZCZYŹNIE - SPRAWDZIAN

Spis treści. POLA WIELOKĄTÓW Pole prostokąta Pole równoległoboku i rombu Pole trójkąta Pole trapezu Sprawdź, czy umiesz...

RZUTOWANIE PROSTOKĄTNE

Rysowanie precyzyjne. Polecenie:

Metoda objętości zadania

XI Olimpiada Matematyczna Gimnazjalistów

Opis wymagań do programu Matematyka 2001

KURS MATURA PODSTAWOWA Część 2

LVIII Olimpiada Matematyczna

Trójkąty Zad. 0 W trójkącie ABC, AB=40, BC=23, wyznacz AC wiedząc że jest ono sześcianem liczby naturalnej.

I semestr WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA VI. Wymagania na ocenę dopuszczającą. Dział programu: Liczby naturalne

II. III. Scenariusz lekcji. I. Cele lekcji

WYKŁAD 13 ANALIZA I ROZPOZNANIE OBRAZU. Konstrukcja wektora cech z użyciem współczynników kształtu

SCENARIUSZ LEKCJI W SALI KOMPUTEROWEJ POZIOM NAUCZANIA: szkoła podstawowa klasa 4

Symulacje komputerowe

I. Funkcja kwadratowa

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012

EGZAMIN MATURALNY Z MATEMATYKI MAJ 2014 POZIOM ROZSZERZONY. Czas pracy: 180 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

Klasa 3. Trójkąty. 1. Trójkąt prostokątny ma przyprostokątne p i q oraz przeciwprostokątną r. Z twierdzenia Pitagorasa wynika równość:

Geometria wykreślna. 2. Elementy wspólne. Cień jako rzut środkowy i równoległy. dr inż. arch. Anna Wancław. Politechnika Gdańska, Wydział Architektury

METODA RZUTÓW MONGE A (II CZ.)

ZESTAW ZADAŃ NA OCENĘ DOPUSZCZAJĄCY Z MATEMATYKI W KLASIE IV.

FUNKCJA LINIOWA - WYKRES

3.3. dwie płaszczyzny równoległe do siebie α β Dwie płaszczyzny równoległe do siebie mają ślady równoległe do siebie

Narysujemy uszczelkę podobną do pokazanej na poniższym rysunku. Rys. 1

METODY KONSTRUKCJI ZA POMOCĄ CYRKLA. WYKŁAD 1 Czas: 45

Krzyżówka oraz hasła do krzyżówki. Kalina R., Przewodnik po matematyce dla klas VII-VIII, część IV, SENS, Poznań 1997, s

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY VI

Naiwny klasyfikator Bayesa brał pod uwagę jedynie najbliższe otoczenie. Lecz czym jest otoczenie? Jak je zdefiniować?

Bank zadań na egzamin pisemny (wymagania podstawowe; na ocenę dopuszczającą i dostateczną)

Jacek Jarnicki Politechnika Wrocławska

O sięganiu głębiej CZWARTY WYMIAR

1 Wstęp teoretyczny. Temat: Obcinanie odcinków do prostokąta. Grafika komputerowa 2D. Instrukcja laboratoryjna Prostokąt obcinający

Modelowanie powierzchniowe - czajnik

Kolorowanie płaszczyzny, prostych i okręgów

X Olimpiada Matematyczna Gimnazjalistów

Tematy: zadania tematyczne

Treści zadań Obozu Naukowego OMG

KRYTERIA OCENIANIA ZAJĘCIA TECHNICZNE KLASA V

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

Obcinanie prymitywów. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej AGH

takich samych podstawach umie zapisać w postaci jednej potęgi iloczyny i ilorazy potęg o

Planimetria poziom podstawowy (opracowanie: Mirosława Gałdyś na bazie

XII WOJEWÓDZKI KONKURS MATEMATYCZNY DLA UCZNIÓW GIMNAZJÓW

Regionalne Koło Matematyczne

Transkrypt:

Marek Zając 2012 Zabrania się rozpowszechniania całości lub fragmentów niniejszego tekstu bez podania nazwiska jego autora.

Spis treści 1. Wprowadzenie... 3 1.1 Czym jest SAT?... 3 1.2 Figury wypukłe... 3 1.3 Projekcje... 4 2. Algorytm SAT... 4 2.1 Podstawa działania algorytmu... 4 2.2 Algorytm SAT... 5 2.3 Kolizja z okręgiem... 7 2.4 Znajdywanie MTV... 7 2.5 Zawieranie się figur... 7 3. Bibliografia... 8 2

1. Wprowadzenie 1.1 Czym jest SAT? SAT (Separating Axis Theorem) jest algorytmem, który pozwala stwierdzić czy dwa obiekty o wypukłym kształcie (convex shape) przecinają się. Dzięki temu algorytmowi można wyeliminować szukanie punktów kolizji dla wszystkich par obiektów i ograniczyć się jedynie do obiektów, dla których będziemy pewni, że zachodzą na siebie. Pozwala to na zmniejszenie ilości obliczeń co w większości przypadków przełoży się na zwiększoną szybkość działania aplikacji. W przeciwieństwie do algorytmów korzystających z prostokątów otaczających obiekt, SAT daje możliwość sprawdzenia przecięcia dla wszystkich krawędzi obiektu przez co jest algorytmem znacznie dokładniejszym. Zalety algorytmu SAT: - Szybkość wykorzystuje jedynie proste działania na wektorach - Dokładność Wady: - Działa jedynie dla wielokątów wypukłych - Nie mówi jakimi dokładnie krawędziami figury kolidują ze sobą 1.2 Figury wypukłe Jak zostało powiedziane przed chwilą, algorytm SAT działa na figurach wypukłych. Warto więc w tym miejscu przypomnieć czym są figury wypukłe. Figurę można nazwać wypukłą wtedy, gdy dowolna prosta poprowadzona przez tą figurę zawsze przetnie dokładnie dwie jej krawędzie. Rysunek 1 - Figura wypukła Rysunek 2 - Figura niewypukła 3

Na powyższych ilustracjach widać różnicę pomiędzy kształtem wypukłym (convex shape) oraz niewypukłym (non-convex shape). Jak widać, w drugim przypadku istnieje linia, która przecina aż 4 krawędzie figury. 1.3 Projekcje W omawianiu algorytmu SAT ważnym zagadnieniem są projekcje. Ale czym one tak naprawdę są? Koncepcję projekcji można porównać do cienia rzucanego przez obiekt. Jeśli skierujesz na obiekt latarkę, której światło będzie padać prostopadle na pewną płaszczyznę to na tej płaszczyźnie pojawi się cień. Ten cień będzie właśnie projekcją oświetlonego obiektu. Dla obiektu trójwymiarowego cień czyli projekcja będzie miała postać dwuwymiarowej figury. Dla kształtów dwuwymiarowych projekcją będzie odcinek. Poniższy obrazek pokazuje projekcję (szary odcinek) trójkąta na czarnej linii przy świetle padającym prostopadle z góry. Rysunek 3 - Projekcja trójkąta na linii 2. Algorytm SAT 2.1 Podstawa działania algorytmu Algorytm SAT wykorzystuje dosyć oczywistą i prostą do zrozumienia zależność, która mówi, że jeśli kształty nie zachodzą na siebie, to da się narysować pomiędzy nimi linię, która nie będzie przecinać żadnego z nich, co pokazuje poniższy rysunek. 4

Rysunek 4 - linia pomiędzy dwoma niekolidującymi figurami W opisie algorytmu wykorzystana jest jednak nieco inna wersja tej zależności, odnosząca się do omówionych we wstępie projekcji. Mówi ona, że jeżeli dwa wypukłe obiekty nie kolidują ze sobą to istnieje oś, dla której projekcje obu tych obiektów nie zachodzą na siebie. Ilustruje to poniższy obrazek. Rysunek 5 - Rzutowanie figur na linię 2.2 Algorytm SAT Tak jak zostało powiedziane przed chwilą, kolizja między dwoma obiektami nie występuje jeżeli istnieje oś, dla której ich cienie nie zachodzą na siebie. Algorytm SAT musi zatem sprawdzić wiele takich osi. Algorytm wykonuje się dopóki nie trafi na pierwszą oś, dla której projekcje nie mają punktów wspólnych lub dopóki nie sprawdzi wszystkich osi. W pierwszym przypadku zwrócona zostanie informacja, że obiekty nie kolidują ze sobą, zaś w drugim przypadku, kiedy po sprawdzeniu wszystkich osi algorytm nie przerwał wcześniej swojego działania rezultatem będzie informacja, że figury kolidują ze sobą. 5

W tym momencie warto odpowiedzieć na pytanie jakie osi powinniśmy wybrać do testów? Najprostsza odpowiedź to taka, że osie wybrane do testu są normalnymi każdej krawędzi obu figur. A czym jest normalna krawędzi? Jest to wektor prostopadły do tej krawędzi. Może on być znormalizowany lub nie. Jeżeli algorytm ma jedynie odpowiadać na pytanie czy figury w jakikolwiek sposób ze sobą kolidują to normalizacja nie jest wymagana. Rysunek 6 - Normalne krawędzi trójkąta W czasie wykonywania algorytmu należy rzutować punkty obu figur zgodnie z kierunkiem normalnej każdej krawędzi. Następnie trzeba sprawdzić czy odległość od skrajnych punktów utworzonych rzutów, będących najbliżej siebie jest większa od 0. Prezentuje to poniższy rysunek. Rysunek 7 - Rzutowanie punktów dla różnych osi 6

Widać tutaj jak punkty obu figur są rzutowane dla dwóch różnych osi. W przypadku natrafienia na dolne projekcje algorytm przerwie swoje działanie i zwróci informację o braku przecinania się kształtów, pomimo nachodzenia na siebie projekcji w górnej części obrazka. Dlatego aby móc stwierdzić, że figury kolidują ze sobą trzeba sprawdzić wszystkie osie. 2.3 Kolizja z okręgiem Kolizje z okręgami są problemem w przypadku opisanej wcześniej metody, ponieważ okrąg posiada nieskończenie wiele osi. W tym przypadku można zastosować dwa rozwiązania. Po pierwsze można w projekcie zrezygnować z okręgów i zamienić je na wielokąty o dużej liczbie krawędzi, które przybliżą kształt okręgu. Innym podejściem jest zastosowanie poniższego rozwiązania. Kolizję z okręgiem można podzielić na dwa przypadki kolizję okrąg- okrąg oraz okrąg wielokąt. Jeśli oba obiekty są okręgami sprawdzenie czy kolidują sprowadza się do sprawdzenia czy odległość pomiędzy ich środkami jest większa niż suma ich promieni. Kolizja okrąg wielokąt wymaga więcej pracy. W takim przypadku należy najpierw znaleźć taki punkt wielokąta, który będzie najbliżej środka okręgu. Po znalezieniu takiego punktu zostaje jedynie sprawdzenie czy jego odległość od środka okręgu jest większa niż promień tego okręgu. 2.4 Znajdywanie MTV W podstawowej wersji algorytm zwracaj jedynie true lub false, odpowiednio jako przecinają się lub nie przecinają się w odniesieniu do testowanych figur. Jednak istnieje również możliwość zwrócenia informacji o MTV (Minimum Translation Vector). Jest to wektor o długości równej długości części wspólnej projekcji figur dla osi której projekcje obiektów zachodzą na siebie w najmniejszym stopniu. MTV jest najkrótszym wektorem używanym do odepchnięcia obiektów tak, żeby nie kolidowały ze sobą. W przypadku poszukiwania MTV osie powinny być znormalizowane, a więc ich długości powinny być sprowadzone do wartości 1. 2.5 Zawieranie się figur Największym problemem dla algorytmu SAT jest sytuacja, w której jeden obiekt znajduje się całkowicie wewnątrz drugiego. Rysunek 8 - Jednak figura zawiera się w drugiej 7

Jeśli wykorzystana zostanie metoda przedstawiona do tej pory zwrócony wektor MTV nie będzie prawidłowy, ponieważ może on być niewystarczający do przesunięcia figur tak, aby nie kolidowały ze sobą. W przypadku zawierania się figur można albo nie dopuszczać do takiej sytuacji, albo uwzględnić tą sytuację przy szukaniu MTV. 3. Bibliografia http://www.codezealot.org/archives/55 http://rocketmandevelopment.com/2010/05/19/separation-of-axis-theorem-for-collision-detection/ http://www.sevenson.com.au/actionscript/sat/ http://pl.wikipedia.org/wiki/bry%c5%82a_brzegowa 8