Grafika 2D. Rasteryzacja elementów wektorowych. opracowanie: Jacek Kęsik

Podobne dokumenty
WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

Grafika 2D. Podstawowe operacje rastrowe. opracowanie: Jacek Kęsik

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Grafika komputerowa Wykład 2 Algorytmy rastrowe

składa się z m + 1 uporządkowanych niemalejąco liczb nieujemnych. Pomiędzy p, n i m zachodzi następująca zależność:

Grafika komputerowa Wykład 8 Modelowanie obiektów graficznych cz. II

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

Grafika komputerowa Wykład 7 Modelowanie obiektów graficznych cz. I

Arkusz maturalny nr 2 poziom podstawowy ZADANIA ZAMKNIĘTE. Rozwiązania. Wartość bezwzględna jest odległością na osi liczbowej.

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 1

PRÓBNA MATURA ZADANIA PRZYKŁADOWE

PRÓBNA MATURA ZADANIA PRZYKŁADOWE

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

Metody numeryczne I Równania nieliniowe

Algorytmy grafiki rastrowej. Mirosław Głowacki Wykład z Grafiki Komputerowej

9. Podstawowe narzędzia matematyczne analiz przestrzennych

Algorytmy grafiki rastrowej. Mirosław Głowacki Wykład z Grafiki Komputerowej

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

ZAGADNIENIA PROGRAMOWE I WYMAGANIA EDUKACYJNE DO TESTU PRZYROSTU KOMPETENCJI Z MATEMATYKI DLA UCZNIA KLASY II

EGZAMIN MATURALNY Z MATEMATYKI

Dział I FUNKCJE I ICH WŁASNOŚCI

Wymagania edukacyjne z matematyki w XVIII Liceum Ogólnokształcącym w Krakowie, zakres podstawowy. Klasa druga.

MATEMATYKA WYKAZ UMIEJĘTNOŚCI WYMAGANYCH NA POSZCZEGÓLNE OCENY DLA KLASY DRUGIEJ

Grafika Komputerowa. Algorytmy rastrowe

ROZKŁAD MATERIAŁU DO 1 KLASY LICEUM (ZAKRES PODSTAWOWY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE II A ROK SZKOLNY 2013/ ZAKRES PODSTAWOWY

Opis krzywych w przestrzeni 3D. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej AGH

XI Olimpiada Matematyczna Gimnazjalistów

Interpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna

Interpolacja, aproksymacja całkowanie. Interpolacja Krzywa przechodzi przez punkty kontrolne

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

Wymagania edukacyjne z matematyki w klasie III gimnazjum

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

KRYTERIA OCENIANIA Z MATEMATYKI W OPARCIU O PODSTAWĘ PROGRAMOWĄ I PROGRAM NAUCZANIA MATEMATYKA 2001 DLA KLASY DRUGIEJ

Rozwiązywanie równań nieliniowych

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z MATEMATYKI W KLASIE IV

Przedmiotowe zasady oceniania i wymagania edukacyjne z matematyki dla klasy drugiej gimnazjum

10.3. Typowe zadania NMT W niniejszym rozdziale przedstawimy podstawowe zadania do jakich może być wykorzystany numerycznego modelu terenu.

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 9 AiR III

Wymagania z matematyki na poszczególne stopnie szkolne w klasie trzeciej gimnazjum

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

Wybrane metody przybliżonego. wyznaczania rozwiązań (pierwiastków) równań nieliniowych

Wymagania na poszczególne oceny w klasie II gimnazjum do programu nauczania MATEMATYKA NA CZASIE

Tematy: zadania tematyczne

PODSTAWY > Figury płaskie (1) KĄTY. Kąt składa się z ramion i wierzchołka. Jego wielkość jest mierzona w stopniach:

Interpolacja i modelowanie krzywych 2D i 3D

ROK SZKOLNY 2017/2018 WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY:

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

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY MATEMATYKA KLASA 8 DZIAŁ 1. LICZBY I DZIAŁANIA

KONKURS MATEMATYCZNY

ZESPÓŁ SZKÓŁ W OBRZYCKU

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE VIII

MATEMATYKA Przed próbną maturą. Sprawdzian 1. (poziom podstawowy) Rozwiązania zadań

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

str 1 WYMAGANIA EDUKACYJNE ( ) - matematyka - poziom podstawowy Dariusz Drabczyk

VII. WYKRESY Wprowadzenie

Modelowanie krzywych i powierzchni

KRYTERIA OCEN Z MATEMATYKI DLA KLASY VII

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

Plan wykładu. Wykład 3. Rzutowanie prostokątne, widoki, przekroje, kłady. Rzutowanie prostokątne - geneza. Rzutowanie prostokątne - geneza

KRZYŻÓWKA Może być np. równoboczny lub rozwartokątny. Jego pole to a b HASŁO:

LI Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia trzeciego 3 kwietnia 2000 r. (pierwszy dzień zawodów)

pt.: KOMPUTEROWE WSPOMAGANIE PROCESÓW OBRÓBKI PLASTYCZNEJ

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

Zakres na egzaminy poprawkowe w r. szk. 2013/14 /nauczyciel M.Tatar/

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

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

Wymagania edukacyjne, kontrola i ocena. w nauczaniu matematyki w zakresie. podstawowym dla uczniów technikum. część II

Rysowanie precyzyjne. Polecenie:

str 1 WYMAGANIA EDUKACYJNE ( ) - matematyka - poziom podstawowy Dariusz Drabczyk

Technologie Informacyjne

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą

GRAFIKA KOMPUTEROWA. Plan wykładu. 1. Początki grafiki komputerowej. 2. Grafika komputerowa a dziedziny pokrewne. 3. Omówienie programu przedmiotu

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY TRZECIEJ NA ROK SZKOLNY 2011/2012 DO PROGRAMU MATEMATYKA Z PLUSEM

SZCZEGÓŁOWE WYMAGANIA EDUKACYJNE DLA KLAS 4-6 SP ROK SZKOLNY 2015/2016

PLAN WYNIKOWY Z MATEMATYKI DLA KLASY II TECHNIKUM 5 - LETNIEGO

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE II W PUBLICZNYM GIMNAZJUM NR 2 W ZESPOLE SZKÓŁ W RUDKACH

MATeMAtyka klasa II poziom rozszerzony

Podstawy Informatyki Wykład V

Wymagania dla klasy szóstej Treści na 2 na 3 na 4 na 5 na 6 Uczeń: Uczeń: Uczeń: Uczeń: Uczeń: Mnożenie ułamków zwykłych

ZAKRES PODSTAWOWY CZĘŚĆ I. Liczby rzeczywiste

GEOMETRIA ELEMENTARNA

PYTANIA TEORETYCZNE Z MATEMATYKI

PRÓBNY EGZAMIN MATURALNY Z NOWĄ ERĄ

Wymagania edukacyjne z matematyki

Geometria analityczna

X. ELEMENTY GRAFIKI ANIMOWANEJ

SPIS TREŚCI WSTĘP LICZBY RZECZYWISTE 2. WYRAŻENIA ALGEBRAICZNE 3. RÓWNANIA I NIERÓWNOŚCI

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Wymagania edukacyjne z matematyki

KRYTERIA OCEN Z MATEMATYKI DLA UCZNIÓW KL. II GIMNAZJUM

Wymagania edukacyjne z matematyki dla klasy VII

Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej

Transkrypt:

Grafika 2D Rasteryzacja elementów wektorowych opracowanie: Jacek Kęsik

Wykład obejmuje operacje rastrowe związane z wyświetleniem kształtów o ciągłych krawędziach za pomocą skończenie gęstej siatki pikseli

Rysowanie odcinków Rysowanie okręgów Krzywe Béziera, sklejane Antyaliasing Wypełnianie obszarów Obcinanie

Rysowanie odcinków Odcinek przedstawiony rastrowo będzie miał wygląd podobny do poniższego

Rysowanie odcinków Odcinek opisany jest za pomocą pozycji punktów początku i końca odcinka Pozycje te zapisane są wg. układu współrzędnych (najczęściej odpowiadającego wartościami ilościom pikseli obrazu) Np. Odcinek (2,5),(10,8) Znając te współrzędne można wyznaczyć równanie prostej, na której ten odcinek leży. y=mx+b m współczynnik nachylenia prostej = tg kąta nachylenia do osi x.

Rysowanie odcinków Znając równanie prostej można zbudować naiwny algorytm rysowania odcinka: Dla wszystkich wartości x (pikseli) od początku do końca odcinka Wyznacz y[i] dla x[i] z równania prostej (1 mnożenie, 1 dodawanie) Znajdź najbliższą y[i] wartość całkowitą yc[i] (1 zaokrąglenie) Zaznacz piksel (x[i],yc[i]) Algorytm ten działa poprawnie dla odcinków o nachyleniu od 0 do 45 stopni Dla odcinków o nachyleniu od 45 do 90 stopni należy podążać wzdłuż osi y.

Rysowanie odcinków Algorytm naiwny można poprawić korzystając z faktu, że nachylenie odcinka jest stałe. Wtedy przy przesuwaniu wartości x o 1, różnica między kolejnymi wartościami y jest stała i wynosi y=m (0<m<1) Kolejne wartości y można obliczyć ze wzoru y[i+1] = y[i]+ y Oszczędność: 1 mnożenie Algorytm taki nosi nazwę: Digital Differential Analyzer (DDA) Algorytm ten działa poprawnie dla odcinków o nachyleniu od 0 do 45 stopni, stąd 0<m<1

Rysowanie odcinków Algorytm może być stosowany dla linii w dowolnym oktancie układu współrzędnych, pod warunkiem modyfikacji kierunku i znaku przesunięcia.

Rysowanie odcinków Algorytm wyznaczania odcinka wykorzystujący jedynie obliczenia stałopozycyjne został zaproponowany przez Bresenhama w 1965r. Algorytm ten, tak samo jak poprzednie ogranicza się do jednego oktantu układu współrzędnych. Wykorzystuje on zależność miedzy poprzednim i kolejnym pikselem, mówiącą że wartość y następnego piksela będzie taka sama lub o 1 większa.

Rysowanie odcinków Algorytm Bresenhama Dla odcinka (xp,yp),(xk,yk) kryterium wyboru między pikselami jest znak parametru p[i] (-1 < p[i] < 1), którego początkowa wartość wynosi p[1]=2 y - x gdzie x= xk xp i y= yk yp Dla p[i]<0 wybierany jest piksel (x[i+1],y[i]) a kryterium p[i+1] = p[i] + 2 y Dla p[i]>=0 wybierany jest piksel (x[i+1],y[i+1]) a kryterium p[i+1] = p[i] + 2 y - 2 x Tylko 1 dodawanie całkowitoliczbowe w 1 kroku

Rysowanie odcinków Algorytm Bresenhama - przykład Dla odcinka (1,1),(7,4) Wartości początkowe x= 7 1 = 6 y= 4 1 = 3 A= 2 y = 6 B = 2 y - 2 x = -6 p[1]= 2*3 6 = 0 Krok 0 Zaczynamy od (x[1],y[1]) 4 3 2 1 1 2 3 4 5 6 7

Rysowanie odcinków Algorytm Bresenhama - przykład Dla odcinka (1,1),(7,4) Wartości początkowe x= 7 1 = 6 y= 4 1 = 3 A= 2 y = 6 B = 2 y - 2 x = -6 p[1]= 2*3 6 = 0 Krok 1 p[1]=0 to (x[2],y[2]) p[2]=0 6 = -6 4 3 2 1 1 2 3 4 5 6 7

Rysowanie odcinków Algorytm Bresenhama - przykład Dla odcinka (1,1),(7,4) Wartości początkowe x= 7 1 = 6 y= 4 1 = 3 A= 2 y = 6 B = 2 y - 2 x = -6 p[1]= 2*3 6 = 0 Krok 2 p[2]= -6 to (x[3],y[2]) p[3]= -6 + 6 = 0 4 3 2 1 1 2 3 4 5 6 7

Rysowanie odcinków Algorytm Bresenhama - przykład Dla odcinka (1,1),(7,4) Wartości początkowe x= 7 1 = 6 y= 4 1 = 3 A= 2 y = 6 B = 2 y - 2 x = -6 p[1]= 2*3 6 = 0 Krok 3 p[3]= 0 to (x[4],y[3]) p[4]= 0-6 = -6 4 3 2 1 1 2 3 4 5 6 7

Rysowanie odcinków Algorytm Bresenhama - przykład Dla odcinka (1,1),(7,4) Wartości początkowe x= 7 1 = 6 y= 4 1 = 3 A= 2 y = 6 B = 2 y - 2 x = -6 p[1]= 2*3 6 = 0 Krok 4 p[4]= -6 to (x[5],y[3]) p[5]= -6 + 6 = 0 4 3 2 1 1 2 3 4 5 6 7

Rysowanie odcinków Algorytm Bresenhama - przykład Dla odcinka (1,1),(7,4) Wartości początkowe x= 7 1 = 6 y= 4 1 = 3 A= 2 y = 6 B = 2 y - 2 x = -6 p[1]= 2*3 6 = 0 Krok 5 p[5]= 0 to (x[6],y[4]) p[6]= 0-6 = -6 4 3 2 1 1 2 3 4 5 6 7

Rysowanie odcinków Algorytm Bresenhama - przykład Dla odcinka (1,1),(7,4) Wartości początkowe x= 7 1 = 6 y= 4 1 = 3 A= 2 y = 6 B = 2 y - 2 x = -6 p[1]= 2*3 6 = 0 Krok 6 p[6]= -6 to (x[7],y[4]) x[7] -> Koniec 4 3 2 1 1 2 3 4 5 6 7

Rysowanie okręgów Równanie okręgu x 2 y 2 r 2 Bezpośrednie wyznaczanie z równania kosztowne obliczeniowo Korzystając z zasady symetryczności można wyznaczyć punkty tylko w 1 oktancie koła

Rysowanie okręgów Algorytm Bresenhama Dla koła w 1 oktancie zachodzi zależność analogiczna jak dla odcinka. Wartość y kolejnego piksela będzie równa wartości obecnej lub o 1 mniejszej. Kryterium wyboru jest to czy punkt środkowy znajduje się wewnątrz x 2 y 2 r 0 czy na zewnątrz koła 2 x 2 y 2 r 2 0

Rysowanie okręgów Algorytm Bresenhama Dla 1 oktantu koła (0,r),(x,y) - takie że x=y, kryterium wyboru między pikselami jest znak parametru p[i], którego początkowa wartość wynosi p[1]=5/4 - r Dla p[i]<0 wybierany jest piksel (x[i+1],y[i]) a kryterium p[i+1] = p[i] + 2 x[i+1] + 1 Dla p[i]>=0 wybierany jest piksel (x[i+1],y[i+1]) a kryterium p[i+1] = p[i] + 2 x[i+1] + 1 2y[i+1] Kroki są powtarzane tak długo jak pozycja x > pozycja y Pozostałe 7 pikseli powiązanych wyznaczane jest na podstawie wybranego Tylko operacje całkowitoliczbowe w 1 kroku

Rysowanie okręgów Algorytm Bresenhama dla okręgów - przykład Dla okręgu o środku (0,0) i r=5 5 4 3 2 1 0-1 -2 Krok 0 Zaczynamy od (x[0],y[5]) -3-4 -5-5 -4-3 -2-1 0 1 2 3 4 5

Rysowanie okręgów Algorytm Bresenhama dla okręgów - przykład Dla okręgu o środku (0,0) i r=5 p[0]= 5/4-5 = -3,75 < 0 5 4 3 2 1 0-1 Krok 1 Kolejny piksel (x[1],y[5]) p[1]= -3,75 +2+1=-0,75-2 -3-4 -5-5 -4-3 -2-1 0 1 2 3 4 5

Rysowanie okręgów Algorytm Bresenhama dla okręgów - przykład Dla okręgu o środku (0,0) i r=5 5 4 3 p[1]= -0,75 < 0 2 1 0-1 Krok 2 Kolejny piksel (x[2],y[5]) p[2]= -0,75 +4+1=4,25-2 -3-4 -5-5 -4-3 -2-1 0 1 2 3 4 5

Rysowanie okręgów Algorytm Bresenhama dla okręgów - przykład Dla okręgu o środku (0,0) i r=5 5 4 3 p[2]= 4,25 > 0 2 1 0-1 Krok 3 Kolejny piksel (x[3],y[4]) STOP -2-3 -4-5 -5-4 -3-2 -1 0 1 2 3 4 5

Krzywe Interpolacja modelowanie krzywej Wielomiany Bernsteina Krzywe Béziera, sklejane

Krzywe Interpolacja metoda numeryczna polegająca na wyznaczaniu w danym przedziale tzw. funkcji interpolacyjnej, która przyjmuje w nim z góry zadane wartości w ustalonych punktach - węzłach

Krzywe Modelowanie krzywej Możliwość wykreślenia dowolnej krzywej jest niezbędna w grafice komputerowej Przed erą komputerów krzywe tworzono analogowo wykorzystując cienką sprężystą listwę, podwieszając ją i obciążając w odpowiednio dobranych miejscach Cyfrowo krzywą można uznać za wykres pewnej funkcji

Krzywe Modelowanie krzywej Wykorzystanie funkcji bezpośrednich typu y=f(x) pozwoli na dokładne matematyczne zapisanie krzywej ale ma jedną poważną wadę pozwala na wyznaczenie jednej wartości y dla każdego x uniemożliwiając tworzenie pętli (czy chociażby okręgu) Matematyczny zapis dowolnych krzywych został wprowadzony do grafiki komputerowej dzięki krzywym kreślonym z wykorzystaniem funkcji parametrycznych

Krzywe Modelowanie krzywej funkcje parametryczne Ogólnie funkcje parametryczną można zapisać jako: Q t X t, Yt Gdzie X(t) i Y(t) są funkcjami parametru t. Dla konkretnej wartości t zwracając wartości x oraz y Parametr t jest często określany mianem czasu co ma odpowiadać przemieszczaniu się punktu (podróżnika) ze stałą prędkością wzdłuż krzywej. Wraz ze wzrostem czasu wzrasta liniowo przebyta droga.

Krzywe Modelowanie krzywej funkcje parametryczne Np. dla zestawu funkcji X ( t) cos t Y( t) sin t i t w zakresie 0 < t < 2 Uzyska krzywa będzie okręgiem

Krzywe Modelowanie krzywej nieparametrycznej Konieczność zapisania krzywej lub jej przybliżenia za pomocą funkcji matematycznej Krzywą spróbkowaną np. w czasie skanowania obrazu można przybliżać wykorzystując interpolację. Interpolację stosujemy, gdy nie znamy postaci analitycznej f(x) lub, gdy analityczna postać funkcji f(x) jest znana, ale obliczanie jej wartości jest zbyt pracochłonne.

Krzywe Modelowanie krzywej - Interpolacja Zadanie sprowadza się do wyznaczenia przybliżenia funkcji f(x) uzyskującego dla skończonej ilości n punktów tzw węzłów interpolacji wartości zgodne z położeniem tych punktów. W celu wyznaczenia przybliżonych wartości funkcji f(x) konstruujemy tzw. funkcję interpolacyjną F(x) określonej klasy, (np. wielomiany algebraiczne, wielomiany trygonometryczne, funkcje sklejane (splajny) itp.) dostatecznie prostą do obliczeń, która w węzłach interpolacji przyjmie te same wartości co funkcja f(x) Zadanie wykonalne gdy F(x) jest wielomianem stopnia n-1

Modelowanie krzywej - Interpolacja Wzór interpolacyjny Lagrange a dla n+1 węzłów interpolacji (wersja cyfrowa) n j j i i i j j j n n x x x x y x x W 0 0 1 ) ( ) ( ) ( ) ( ) ( ) )( ( ) ( 1 0 1 n n x x x x x x x gdzie Tylko jedno rozwiązanie Krzywe

Modelowanie krzywej - Interpolacja 3 4 2 4 1 4 4 3 4 3 2 3 1 3 3 1 4 2 3 2 1 2 2 4 4 1 3 1 2 1 1 3 4 3 2 1 ) 3 ( x x x x x x x x x W Przykład Znaleźć wielomian interpolacyjny Lagrange a, dla punktów (1,3),(2,4),(3,-1),(4,3). n j j i i i j j j n n x x x x y x x W 0 0 1 ) ( ) ( ) ( ) ( Krzywe

Krzywe Modelowanie krzywej - Interpolacja Dla niewielkiej ilości punktów (kilka) krzywa interpolacyjna jest zgodna z oczekiwaniami. Przy większej ilości stopień wielomianu wzrasta a krzywa wykazuje tendencję do oscylacji Lepsze wyniki daje krzywa sklejana/składana

Krzywe Krzywa Béziera Jest krzywą parametryczną. Może być jedną z krzywych składanych Zaproponowana w latach 60-tych ubiegłego wieku przez Pierre Etienne Béziera. Krzywe te miały pomóc przy projektowaniu karoserii samochodów dla koncernu Renault, dla którego Bézier pracował. Równolegle, podobne rozwiązanie zaproponował Paul de Casteljau, pracujący dla konkurencyjnej firmy Citroën. Jednak Renault zezwolił na upublicznienie wyników o kilka lat wcześniej

Krzywe Krzywa Béziera Krzywa Béziera stopnia n jest definiowana przez n +1 punktów P0, P1, Pn w bazie wielomianów Bernsteina. Jest to krzywa gładka, której kształt zależy od położenia punktów kontrolnych. Pierwszy i ostatni z punktów są końcami krzywej. Pozostałe punkty to punkty kontrolne Krzywa Béziera 3 stopnia

Krzywe Krzywa Béziera wielomiany Bernsteina Wielomiany bazowe Bernsteina opisane są wzorem B n i n i t 1 t t i t 0,1 0 dla ni i dla 0, i i 0.. n n

Krzywe Krzywa Béziera Wzór analityczny na krzywą Béziera n-tego stopnia Q( t) n i0 PB i n i ( t)

Krzywa Béziera 3 3 3 2 3 2 2 3 1 3 3 0 ) ( 1 3 ) ( 1 3 ) ( 1 ) ( t t B t t t B t t t B t t B Wzór analityczny na krzywą Béziera 3-go stopnia 0,1... 1 ) (... 1 ) ( 1 3 1 3 1 ) ( 3 0 3 0 3 4 2 2 2 1 3 0 t t Y t Y t X t X P t t t P t t P t P Q t Krzywe Obliczanie dość złożone (potęgowanie, mnożenie )

Krzywe Krzywa Béziera Krzywe Béziera wykorzystywane w programach graficznych są 3-go stopnia

Krzywe Krzywa Béziera - Właściwości P 0 i P 1 są końcami krzywej Odcinki P 0, P 1 i P 2, P 3 są styczne do krzywej Krzywa Béziera zawiera się całkowicie w wielokącie wypukłym, którego wierzchołkami są wierzchołki łamanej P 1 P 2 Odwrócenie kolejności punktów nie zmienia kształtu krzywej P 0 P 3 Wada: Krzywą Béziera nie można zbudować krzywej stożkowej

Krzywe Krzywa Béziera - rysowanie Algorytm de Casteljau Bazuje na prostym podziale odcinków. Wyznacza zbiór punktów leżących na krzywej Béziera na podstawie wierzchołków łamanej ją opisującej. Gęstość wyznaczonych punktów jest zależna od gęstości podziału przedziału parametru t <0,1> Np. dla gęstości 0,01 wyznaczonych zostanie 100 punktów rozmieszczonych na krzywej.

Krzywe Krzywa Béziera - Algorytm de Casteljau Punkty na krzywej można wyznaczyć dzieląc rekurencyjnie przez tą samą wartość odcinki łamanej, opisującej krzywą Możliwość ta wynika z właściwości wielomianów bazowych Bernsteina B n i n1 n1 t 1t B t tb t i i1

Krzywe Krzywa Béziera - Algorytm de Casteljau Przebieg Dla zbioru n+1 wierzchołków łamanej opisującej krzywą: P 0, P1,..., P n 1, P n każdy odcinek łamanej jest dzielony w stosunku t :1t, zapisywany jest nowy wierzchołek Powstaje nowy zbiór n wierzchołków Proces jest powtarzany dla nowego zbioru, aż do pozostania tylko jednego wierzchołka punkt ten leży na krzywej Béziera Algorytm wykonywany jest ponownie, dla kolejnej wartości z przedziału t

Krzywe Krzywa Béziera - Algorytm de Casteljau Dla krzywej 3 stopnia P 1 P 2 t = 0,5 P 0 P 3

Krzywe Krzywa Béziera - Algorytm de Casteljau Dla krzywej 3 stopnia t = 0,5 Przebieg 1 P 0 P 1 P 2

Krzywe Krzywa Béziera - Algorytm de Casteljau Dla krzywej 3 stopnia t = 0,5 P 0 P 1 Przebieg 2

Krzywe Krzywa Béziera - Algorytm de Casteljau Dla krzywej 3 stopnia t = 0,5 P 0 Przebieg 3

Krzywe Krzywa Béziera - Algorytm de Casteljau Dla krzywej 3 stopnia P 1 P 2 t = 0,25 P 0 P 3

Krzywe Krzywa Béziera - Algorytm de Casteljau Dla krzywej 3 stopnia t = 0,25 Przebieg 1 P 1 P 2 P 0

Krzywe Krzywa Béziera - Algorytm de Casteljau Dla krzywej 3 stopnia t = 0,25 Przebieg 2 P 1 P 0

Krzywe Krzywa Béziera - Algorytm de Casteljau Dla krzywej 3 stopnia t = 0,25 Przebieg 3 P 0

Krzywe Krzywa Béziera - składanie W praktyce rzadko kiedy używa się krzywych Béziera wysokiego stopnia. Każdy punkt krzywej Béziera zależy od wszystkich punktów kontrolnych kontrolowanie kształtu krzywej wysokiego stopnia byłoby trudne Rozwiązaniem jest łączenie ze sobą odcinków opisanych krzywymi niskiego stopnia (najczęściej 3)

Krzywe Krzywa Béziera - składanie Połączenie dwóch krzywych opisanych łamanymi R, R1,..., R n 1, R n następuje gdy P n R 0 0 P 0, P1,..., P n 1, P n oraz Łączyć można dowolną ilość krzywych, także w obszary zamknięte

Krzywe Krzywa Béziera - składanie Istnieją trzy typy połączeń krzywych Béziera - Połączenie ostre (bez zachowania ciągłości)

Krzywe Krzywa Béziera - składanie Istnieją trzy typy połączeń krzywych Béziera - Połączenie gładkie (z zachowaniem ciągłości geometrycznej) P 2 R 0 R 1 P 3 Punkty P, R 2 P3, R0, 1 leżą na jednej prostej

Krzywe Krzywa Béziera - składanie Istnieją trzy typy połączeń krzywych Béziera - Połączenie symetryczne (z zachowaniem ciągłości parametrycznej) R 0 P 3 R 1 P 2 Punkty P leżą na jednej prostej Odcinki oraz mają jednakową długość 2 P, P, 3 P, R0, R1 2 3 R 0, R1

Krzywe Krzywa Béziera - wady Nie można za ich pomocą wyznaczyć krzywych stożkowych Poddanie punktów kontrolnych krzywej rzutowaniu perspektywicznemu spowoduje zmianę kształtu krzywej

Krzywe Wymierna Krzywa Béziera Jest zdefiniowana wzorem Q( t) n i0 n i0 w PB i i i w B n i n i ( t) ( t) Gdzie w i jest wagą i-tego punktu Béziera

Krzywe Wymierna Krzywa Béziera Jedna z głównych zalet to możliwość tworzenia krzywych stożkowych Np. Tworząc krzywą 2 stopnia i ustalając wagi w 0, w2 1 Można uzyskać w 1 1 - Łuk hiperboli dla - Łuk paraboli dla w 1 1 - krótszy łuk okręgu/elipsy dla - dłuższy łuk okręgu/elipsy dla 0 w1 1 1 w1 0 w1 2 2 w 1 w 2 2 2 w 1 w 0

Grubość linii Grubość linii tworzącej rysunek może być większa od 1 piksela Konieczne jest wyznaczenie zbioru pikseli składających się na linię Wyznaczenie pikseli dla linii poziomych i pionowych nie stanowi problemu

Grubość linii Wyznaczenie pikseli dla linii ukośnych wiąże się z niepewnością, które piksele powinny zawierać się w linii Jeśli wybrane zostaną tylko piksele zawierające się w obszarze, nastąpi optyczne wyszczuplenie linii. Najczęściej kompensacja przez dodanie pikseli bliskich wybranej grubości linii fizyczne pogrubienie linii Linia o nachyleniu od 0 do 45 st. wyznaczanie pikseli w osi y Linia o nachyleniu od 45 do 90 st. wyznaczanie pikseli w osi x

Grubość linii Ustalanie pikseli dla linii grubej nie będącej prostym odcinkiem wiąże się z przechodzeniem miedzy osią x i y bardziej złożony algorytm Prostszym rozwiązaniem jest zastępowanie każdego piksela linii obszarem o określonym kształcie np. prostokąt

Rysowanie linii - Aliasing Specyfika budowy rastra powoduje różne wyświetlanie linii w zależności od jej kąta pochylenia. Głównym efektem jest powstawanie schodkowości linii innych niż wielokrotność 90 - Aliasing. Jej widoczność zależy od rozdzielczości i wielkości ekranu. Nie istnieje metoda eliminacji aliasingu Schodkowość jest największa dla linii pod kątem 45 (Schodek co piksel) Powoduje to optyczne zmniejszenie grubości linii

Rysowanie linii - Antyaliasing Aliasing można optycznie zamaskować rozmywając krawędzie linii Metoda ta nazywa się Antyaliasing Zamiast ostrego rozgraniczenia miedzy kolorem linii/krawędzi i kolorem tła wprowadza się kolory pośrednie pomiędzy tymi dwoma Dla linii 1 pikselowej generowanie linii zostało zmodyfikowane Jeżeli rzeczywista linia leży odpowiednio daleko od najbliższego piksela, wybierane są piksele po obu stronach linii, każdy z intensywnością koloru zależną od odległości do linii rzeczywistej Suma intensywności jest równa intensywności koloru linii

Rysowanie linii - Antyaliasing W przypadku grubszych linii i innych obiektów antyaliasing stosowany jest do ich krawędzi.

Rysowanie linii - Antyaliasing Kolory pośrednie dla krawędzi zależą od koloru tła. Zastosowanie prostego antyaliasingu dla krawędzi obiektu przemieszczanego (animowanego) może spowodować efekt Halo w chwili przesunięcia obiektu na tło o innym kolorze Efektu Halo można uniknąć stosując antyaliasing wykorzystujący stopnie przeźroczystości zamiast poziomów jasności

Wypełnianie obszarów Podstawowa cecha: Wypełnić możemy obszar zamknięty (czyli jaki?) Obszary zamknięte mogą być definiowane (ograniczane) rastrowo (zbiór pikseli tworzących krawędź) lub wektorowo (zbiór odcinków o wspólnych wierzchołkach)

Wypełnianie obszarów Obszary zamknięte rastrowe (zbiór pikseli) Specyfika tworzenia linii rastrowych powoduje podział na dwa rodzaje obszarów zamkniętych Czterospójny Obszar jest cztero-spójny (ang. four-way connected region), jeśli zawarte w nim piksele posiadają ten sam kolor oraz do każdego z nich można dotrzeć przechodząc po pikselach tego obszaru w 4 podstawowych kierunkach. A wypełnienie gradientowe?

Wypełnianie obszarów Obszary zamknięte rastrowe (zbiór pikseli tworzących krawędź) Specyfika tworzenia linii rastrowych powoduje podział na dwa rodzaje obszarów zamkniętych Ośmiospójny Obszar jest ośmio-spójny (ang. eight-way connected region), jeśli zawarte w nim piksele posiadają ten sam kolor oraz do każdego z nich można dotrzeć przechodząc po pikselach tego obszaru w 8 podstawowych kierunkach.

Wypełnianie obszarów Obszary zamknięte rastrowe (zbiór pikseli tworzących krawędź) Analogicznie krawędź rastrowa może być cztero lub ośmiospójna

Wypełnianie obszarów Sposób wypełnienia wypełnienie konturowe (boundary fill) Obszar posiada jednokolorowy kontur Wnętrze obszaru jest wypełnione dowolnymi kolorami innymi niż kolor konturu

Wypełnianie obszarów Sposób wypełnienia wypełnienie powodziowe/pożar prerii (flood fill) Obszar jest wypełniony jednym kolorem Otoczenie obszaru wielokolorowe (kolory inne niż kolor obszaru)

Wypełnianie obszarów Metoda wypełniania pożar prerii 1. Wybierany jest piksel startowy (wewnątrz obszaru wypełnienia) i umieszczany na stosie. 2. Dla wszystkich pikseli spójnych do danego piksela (cztero lub ośmio) testowany jest warunek - piksel jest tego samego koloru co startowy (w. powodziowe) lub - piksel jest innego koloru niż kolor krawędzi (w. krawędziowe) 3. Wszystkie piksele spełniające warunek, oznaczane są jako nowe piksele startowe (umieszczane na stosie) 4. Obecny piksel kolorowany jest nowym kolorem oraz usuwany ze stosu 5. Dla wszystkich pikseli na stosie wykonywane są punkty 2 do 4, tak długo jak stos zawiera jakieś piksele.

Wypełnianie obszarów Metoda wypełniania pożar prerii algorytm czterospójny Wypełnione: Stos: Testowane: 0 px 1 px 4 px

Wypełnianie obszarów Metoda wypełniania pożar prerii algorytm czterospójny Wypełnione: Stos: Testowane: 1 px 4 px 16 px

Wypełnianie obszarów Metoda wypełniania pożar prerii algorytm czterospójny Wypełnione: Stos: 5 px 7 px Testowane: 49 px!! (w tym 11 nowych ) i następne kroki

Wypełnianie obszarów Metoda wypełniania pożar prerii algorytm ośmiospójny krawędziowy Wypełnione: Stos: Testowane: 0 px 1 px 8 px

Wypełnianie obszarów Metoda wypełniania pożar prerii algorytm ośmiospójny krawędziowy Wypełnione: Stos: 1 px 8 px Testowane: 72 px!!

Wypełnianie obszarów Metoda wypełniania pożar prerii algorytm ośmiospójny krawędziowy Wypełnione: Stos: Testowane: 9 px 6 px 54 px Wypełnianie ośmiospójne przecieka przez krawędź ośmiospójną

Wypełnianie obszarów Metoda wypełniania pożar prerii Główna wada: Ogromna nadmiarowość testów kolorów pikseli - Ten sam piksel może być sprawdzany nawet ośmiokrotnie

Wypełnianie obszarów Metoda wypełniania algorytm Smitha Algorytm ten wykorzystuje pojęcie segmentów: Ciągów pikseli mających tą samą cechę Segment jest opisywany 3 wartościami: współrzędne x, y początku, oraz długość segmentu 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 (2,2,6) (3,4,3) (3,9,1) (8,6,2)

Wypełnianie obszarów Metoda wypełniania algorytm Smitha Etapy 1. Wybierany jest punkt wewnątrz obszaru 2. Dla punktu wyznaczany jest maksymalny segment, kolorowany i zapisany na stosie

Wypełnianie obszarów Metoda wypełniania algorytm Smitha Etapy 3. Dla pierwszego piksela w segmencie sprawdzane są piksele poniżej i powyżej 4. Jeżeli sprawdzony piksel należy do obszaru, wyznaczany jest segment, do którego należy, kolorowany i zapisany na stosie

Wypełnianie obszarów Metoda wypełniania algorytm Smitha Etapy 5. Algorytm przesuwa się wzdłuż segmentu bazowego o odległość równą wyznaczonemu przyległemu segmentowi + 1. Testowany jest kolejny przyległy piksel. Jeżeli sprawdzony piksel należy do obszaru, wykonywane są zadania z punktu 4

Wypełnianie obszarów Metoda wypełniania algorytm Smitha Etapy 5. Algorytm przesuwa się wzdłuż segmentu bazowego o odległość równą wyznaczonemu przyległemu segmentowi + 1. Testowany jest kolejny przyległy piksel. Jeżeli sprawdzony piksel należy do obszaru, wykonywane są zadania z punktu 4 0 + 1 = 1

Wypełnianie obszarów Metoda wypełniania algorytm Smitha Etapy 5. Algorytm przesuwa się wzdłuż segmentu bazowego o odległość równą wyznaczonemu przyległemu segmentowi + 1. (Jeżeli wykroczono poza koniec segmentu bazowego, algorytm kończy sprawdzanie po tej stronie.) Testowany jest kolejny przyległy piksel. Jeżeli sprawdzony piksel należy do obszaru, wykonywane są zadania z punktu 4 0 + 1 = 1

Wypełnianie obszarów Metoda wypełniania algorytm Smitha Etapy 5. Algorytm przesuwa się wzdłuż segmentu bazowego o odległość równą wyznaczonemu przyległemu segmentowi + 1. Testowany jest kolejny przyległy piksel. Jeżeli sprawdzony piksel należy do obszaru, wykonywane są zadania z punktu 4

Wypełnianie obszarów Metoda wypełniania algorytm Smitha Jeżeli wykroczono poza koniec segmentu bazowego po obu stronach, bazowy segment jest usuwany ze stosu. Algorytm kontynuuje działanie od p.2 z kolejnym segmentem ze stosu

Wypełnianie obszarów Metoda wypełniania wielokątów Wielokąt jest opisywany za pomocą zbioru odcinków o początkach i końcach określanych współrzędnymi pikselowymi Dla skrócenia zapisu możliwe jest tworzenie łamanej składającej się z kilku odcinków. Zapisywana jest za pomocą ciągu liczb gdzie 1 jest ilością odcinków a następne parami współrzędnych tworzących łamaną (bez powtórzeń wierzchołków) Np. 4, 1,2, 4,4, 5,8, 17,3

Wypełnianie obszarów Metoda wypełniania wielokątów skanowanie liniami poziomymi Metoda ta polega na szukaniu przecięć odcinków wielokąta z poziomymi liniami odpowiadającymi kolejnym rzędom pikseli. Algorytm zakłada, że linia pozioma przetnie wielokąt parzystą ilość razy. Dla każdej pary współrzędnych przecięć (zaokrąglonych do pikseli) zamalowywany jest odcinek pomiędzy nimi.

Wypełnianie obszarów Metoda wypełniania wielokątów skanowanie liniami poziomymi Najprostsza wersja algorytmu skanowania liniami poziomymi miałaby postać: 1. wyznacz ymin i ymax z listy krawędzi wielokąta 2. Dla y = ymin; ymax; y++ wykonuj kroki 3-5 3. Wyznacz X - zbiór współrzędnych x punktów przecięcia krawędzi z listy z linią skanującą y 4. Posortuj rosnąco zbiór X 5. Dla kolejnych par punktów ze zbioru X narysuj odcinki na wysokości y. 6. Koniec Ale

Wypełnianie obszarów Metoda wypełniania wielokątów skanowanie liniami poziomymi Przypadki szczególne Wielokąt posiada odcinek poziomy - nieokreślona ilość przecięć z linią skanującą spowoduje błędne działanie algorytmu. Rozwiązanie: Eliminacja odcinków poziomych (ta sama wartość y początku i końca) z listy. -> Efekt uboczny: wypełnienie nie obejmuje krawędzi poziomej

Wypełnianie obszarów Metoda wypełniania wielokątów skanowanie liniami poziomymi Przypadki szczególne Natrafienie linii skanującej na końce odcinków Może (ale nie musi) spowodować błędne działanie algorytmu

Wypełnianie obszarów Metoda wypełniania wielokątów skanowanie liniami poziomymi Przypadki szczególne Natrafienie linii skanującej na końce odcinków Trzy możliwości: - oba odcinki są powyżej linii skanującej - oba odcinki są poniżej linii skanującej - jeden odcinek jest powyżej linii skanującej a drugi poniżej

Wypełnianie obszarów Metoda wypełniania wielokątów skanowanie liniami poziomymi Przypadki szczególne Natrafienie linii skanującej na końce odcinków -jeden odcinek jest powyżej linii skanującej a drugi poniżej Efekt: dodatkowy odcinek lub nieparzysta ilość współrzędnych odcinków

Efekt uboczny 1: optymalizacja algorytmu Efekt uboczny 2: możliwa utrata niektórych pikseli wypełnienia Podstawowe operacje rastrowe Wypełnianie obszarów Metoda wypełniania wielokątów skanowanie liniami poziomymi Przypadki szczególne Natrafienie linii skanującej na końce odcinków -jeden odcinek jest powyżej linii skanującej a drugi poniżej Rozwiązanie: Linie skanujące przemieszczają się w jednym kierunku. Eliminowanie z listy odcinków stykających się z linią, takich które leżą powyżej linii.

Wypełnianie obszarów Metoda wypełniania wielokątów skanowanie liniami poziomymi Obliczanie przecięcia linii z odcinkiem Kolejne wykorzystanie algorytmu przyrostowego: - odcinek ma współrzędne (x1,y1, x2,y2) - współrzędna ys linii skanującej wzrasta o 1 - Jeżeli ys=y1 to współrzędna xp przecięcia = x1 Dla każdej kolejnej wartości ys aż do ys=y2, xp przecięcia można wyliczyć ze wzoru: xp(y+1)=xp(y)+dx gdzie dx=(x2-x1)/(y2-y1)

Obcinanie Obcinanie ma miejsce w sytuacji gdy obraz nie mieści się na ekranie / w oknie wyświetlania. Sensowną i często niezbędną praktyką jest usunięcie elementów obrazu leżących poza obszarem wyświetlania Obcięcie obrazu rastrowego jest sprawą trywialną. Sytuacja komplikuje się gdy obraz zawiera obiekty zdefiniowane wektorowo a algorytm ma wybrać tylko te obiekty i ich części, które znajdują się w oknie wyświetlania

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Jednym z najbardziej rozpowszechnionych algorytmów obcinania odcinków jest algorytm Cohena-Sutherlanda. Bazuje on na podziale obrazu na 9 części i przypisaniu im odpowiednich kodów bitowych 1001 1000 1010 0001 0000 0010 Okno wyświetlania / pole obcinania 0101 0100 0110

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Kody poszczególnych pól dobrane zostały w określony sposób Dwie pierwsze cyfry definiują wiersz (10xx, 00xx, 01xx) dwie kolejne kolumnę pola (xx01, xx00, xx10) Końce odcinków przyjmują kody pól, w których leżą. 1xxx 1001 1000 1010 0001 0000 0010 0101 0100 0110 xxx1

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Odcinki mogą być usytuowane różnie względem pola obcinania A. Odcinek leży po jednej stronie poza obszarem obcinania. B. Odcinek leży ukośnie poza obszarem obcinania C. Odcinek leży jednym końcem w obszarze obcinania D. Odcinek przechodzi przez obszar obcinania E. Odcinek zawiera się w obszarze obcinania 1001 1000 1010 B A E 0001 0000 0010 C D 0101 0100 0110

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Procedura wykonuje dwa przebiegi, w jednym przebiegu: Korzystając z prostych testów można rozpoznać odcinki typu E - Kod obu końców odcinka = 0000 Oraz odcinki typu A - Bitowy iloczyn logiczny kodów obu końców odcinka będzie > 0 A 1001 1010 = 1000 B 0001 1000 = 0000 C 0000 0010 = 0000 itd.. A 1001 1000 1010 B E 0001 0000 0010 C D 0101 0100 0110 Oba rodzaje odcinków można wyeliminować z dalszego sprawdzania

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Pozostałe odcinki musza być poddane procedurze obcinania. 1. Wybierany jest punkt końca o kodzie różnym od 0000 1001 1000 1010 B 0001 0000 0010 C D 0101 0100 0110

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Pozostałe odcinki musza być poddane procedurze obcinania. 1. Wybierany jest punkt końca o kodzie różnym od 0000 2. W zależności od kodu punktu wybierana jest linia obcinania (0010). 1001 1000 1010 B 0001 0000 0010 C D 0101 0100 0110 xk

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Pozostałe odcinki musza być poddane procedurze obcinania. 1. Wybierany jest punkt końca o kodzie różnym od 0000 2. W zależności od kodu punktu wybierana jest linia obcinania (0010) 3. Znajdowany jest punkt przecięcia odcinka z linią y' y 1 y 2 x' x y k 1 x x k 2 x x 1 1 (x2,y2) (x1,y1) xk

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Pozostałe odcinki musza być poddane procedurze obcinania. 1. Wybierany jest punkt końca o kodzie różnym od 0000 2. W zależności od kodu punktu wybierana jest linia obcinania (0010) 3. Znajdowany jest punkt przecięcia odcinka z linią 4. Nowy punkt przyjmowany jest za koniec odcinka, obliczany jest nowy kod tego końca. 1001 1000 1010 B 0001 0000 0010 D C 0101 0100 0110 xk

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Pozostałe odcinki musza być poddane procedurze obcinania. 1. Wybierany jest punkt końca o kodzie różnym od 0000 2. W zależności od kodu punktu wybierana jest linia obcinania (0010) 3. Znajdowany jest punkt przecięcia odcinka z linią 4. Nowy punkt przyjmowany jest za koniec odcinka, obliczany jest nowy kod tego końca. 1001 1000 1010 B 0001 0000 0010 D C 0101 0100 0110 Analogicznie dla wszystkich pozostałych odcinków

Obcinanie Algorytm obcinania odcinków Cohena-Sutherlanda Drugi przebieg eliminuje w początkowej fazie odcinki typu B i C Dla procedury obcinania pozostają odcinki typu D. 1001 1000 1010 0001 0000 0010 D 0101 0100 0110

Obcinanie Algorytm obcinania wieloboków Sutherlanda-Hodgmana W przypadku wieloboków mamy do czynienia z listą odcinków tworzących zamknięty obszar (często wypełniony). Obcięcie wiąże się więc nie tylko z usunięciem bądź skróceniem odpowiednich odcinków ale również z uzupełnieniem krawędzi wieloboku aby nadal tworzył obszar zamknięty. Algorytm Sutherlanda-Hodgmana wykorzystuje zapis wieloboku w postaci listy punktów wierzchołków wieloboku. Przetwarza on zbiór P(p1,p2,,pn) w zbiór Q(q1,q2,,qm) gdzie n nie musi być równe m

Obcinanie Algorytm obcinania wieloboków Sutherlanda-Hodgmana Wielobok może być w jednej z 4 pozycji w stosunku do obszaru obcinania. Pierwsze 3 pozycje nie stanowią problemu.

Obcinanie Algorytm obcinania wieloboków Sutherlanda-Hodgmana Kłopotliwa jest sytuacja 4 gdy wielokąt zawiera się częściowo o obszarze obcinania. Algorytm wykonuje 4 przebiegi po wierzchołkach, zawsze w tą samą stronę. Za każdym przebiegiem brana jest pod uwagę jedna z linii obcinania. w3 w2 w1

Obcinanie Algorytm obcinania wieloboków Sutherlanda-Hodgmana Wierzchołek znajdujący się po wewnętrznej stronie linii obcinania jest przepisywany do nowego zbioru. Wierzchołek znajdujący się po zewnętrznej stronie jest usuwany. Testowane jest również to czy poprzedni wierzchołek znajduje się po tej samej stronie linii. Jeżeli nie, wyliczany jest punkt przecięcia odcinka z linią i dodawany do zbioru w3 w4 Nw1 w2

Obcinanie Algorytm obcinania wieloboków Sutherlanda-Hodgmana Cztery przebiegi algorytmu są wykonywane dla czterech linii obcinania

Obcinanie Algorytm obcinania wieloboków Sutherlanda-Hodgmana Szczególnym przypadkiem obcinania jest sytuacja gdy obcinany obiekt jest wielokątem wklęsłym. W takim przypadku algorytm może wytworzyć zdegenerowany obiekt pochodny, zawierający kilka obszarów połączonych liniami.