Strona główna

Parametryczny opis krzywej


Pobieranie 37.41 Kb.
Data19.06.2016
Rozmiar37.41 Kb.
PARAMETRYCZNY OPIS KRZYWEJ

x=fx(t) x=200t+100 x=100t^2+100

y=fy(t) x=400t+300 x=400t^2+200 t  < 0,1 >

t=0, x =fx(0), y = fy(0) punkt początkowy xp, yp

t=1, x =fx(1), y = fy(1) punkt końcowy xk, yk

x = axt + bx xp = bx

y = bxt + by t  < 0,1 > yp = by

xk = ax + bx xk = ax + xp ax = xk - xp

yk = ay + by yk = ay + yp ay = yk - yp

x = xp ( 1 – t ) + xkt

y = yp ( 1 – t ) + ykt t  < 0,1 >

KRZYWE BEZIERA

Dane są 4 punkty p1, p2, p3, p4. Krzywa musi przechodzić przez p1 i p4. Punkty p2 i p3 są aproksymowane. Wagi poszczególnych punktów są określone wielomianami Bernsteina

Q(t) = [ qx(t) , qy(t) ]

Q(t) = (1 – t)^3 P1 + B1

+ 3t (1 - t)^2 P2 + B2

+ 3t^2 (1 - t) P3 + B3

+ t^3 P4 B4




Własności:

1. Krzywa przechodzi przez p1 i p4

2. W punkcie p1 krzywa jest styczna do p2p1

3. W punkcie p4 krzywa jest styczna do p4p3

4. Krzywa zawiera się w minimalnym

wielokącie wypukłym rozpiętym na punktach

p1, p2, p3, p4




Ciągłość geometryczna G1 jest to zachowanie tego samego kierunku wektorów sterujących. Ciągłość parametryczna C1 jest to zachowanie tego samego kierunku wektorów sterujących i te same długości.

CUSP – ostre przejście

SMOOTH – ciągłość G1

SYMMETRY – ciągłość C1
WYPEŁNIANIE


  1. Które piksele wypełnić

  2. Czym je wypełnić

WYPEŁNIANIE STAŁYM KOLOREM

  1. Wypełnianie prostokąta

for ( y = ymin; y <= ymax; y++)

{ for (x = xmin; x <= xmax; x++)

writepixel(x, y, color) }


  1. Wypełnianie wielokątów

Wypełnianie danej linii:

  1. Znajdź przecięcia linii określonej y z wszystkimi krawędziami obwodu (E, D , C , B ) – oznacza znalezienie wszystkich współrzędnych x punktów przecięcia

  2. Posortuj współrzędne x w kolejności rosnącej

  3. Wypełnij piksele segmentów linii poziomej korzystając z reguły parzystości ( parzystej liczby przecięć), krawędzie poziome ignorujemy.

  1. Wypełnianie wzorami

  2. Wypełnianie wzorami bez wielokrotnej konwersji wierszowej


RYSOWANIE GRUBUCH LINII

Stosowanie piórka przy użyciu maski jak przy wypełnianiu bez wielokrotnej konwersji wierszowej.

OBCINANIE


OBCINANIE ODCINKÓW PROSTOKĄTEM

Odcinek w postaci parametrycznej:

x = 100t


y = 200t t  < 0,1 >

Czy przecina się z x = 1024 ?

1024 = 100t => t = 1024/100 = 10,24


  1. Algorytm Cohena-Sutherlanda

Klasyfikacja wierzchołków odcinka

x, y – współrzędne punktu, który analizujemy

bit 1 – ymax – y

bit 2 – y – ymin 0 – (+)

bit 3 – xmax – x 1 – (-)

bit 4 – x – xmin

Po określeniu kodów wnioskujemy:

0000


+ 0000

0000 w pełni akceptowalny

Jeśli operacja AND na obu słowach kodowych daje wynik != 0 to oba końce w tej samej półpłaszczyźnie nie przecinającej się z oknem obcinanym.

1000


* 1010

1000
PRZEKSZTAŁCENIA



  • Przesunięcie (translacja)

Wektor przesunięcia (3, -4); (2, 4) --> (5, 0)

x x’ dx


P = [ y ] P’ = [ y’ ] T = [ dy ] T(dx, dy)

P’ = P + T



  • Skalowanie

x’ = Sx * x y’ = Sy * y

Sx, Sy – współczynniki skali

x’ Sx 0 x

[ y’ ] = [ 0 Sy ] * [ y ] S(Sx, Sy)

P’ = P * S(Sx, Sy)


  • Obrót

x = r cos  y = r sin 

x’ = r cos ( + ) = r cos  cos  - r sin  sin 

y’ = r sin ( + ) = r sin  cos  + r sin  sin 

x’ = x cos  - y sin  y’ = x sin  + y cos 

x’ cos  - sin  x

[ y’ ] = [ sin  cos  ] * [ y ] R ()

P’ = P * R()

(2)/2 - (2)/2

R [  / 4 ] = [ (2)/2 (2)/2 ]

P’ = M1 * P

P” = M2 * P’ = M2 * M1 * P = Mz * P
WSPÓŁRZĘDNE JEDNORODNE I MACIERZOWA REPREZENTACJA PRZEKSZTAŁCEŃ
Przestrzeń 2D – wprowadzamy trzecią współrzędną

Punkt : (x, y, W)

(x, y, W) (x’, y’, W’) – ten sam punkt

(3, 4, 1) <-> (6, 8, 2) <-> (9, 12, 3)

Współrzędne są znormalizowane, gdy W=1

Znajdowanie postaci znormalizowanej :

(x, y, W) --> (x / W, y / W, W / W)

Jeśli współrzędne (x, y, W) są w postaci znormalizowaniej, to x, y – oznaczają współrzędne punktu w zwykłej przestrzenie 2D.

x’ 1 0 dx x x + dx

[ y’ ] = [ 0 1 dy ] * [ y ] = [ y + dy ]

1 0 0 1 1 1
x’ Sx 0 0 x Sx * x

[ y’ ] = [ 0 Sy 0 ] * [ y ] = [ Sy * y ]

1 0 0 1 1 1
x’ cos -sin 0 x xcos-ysin

[ y’ ] = [ sin  cos 0 ] * [ y ] = [ xsin+ycos ]

1 0 0 1 1 1
OBRÓT WZGLĘDEM LOKALNEGO UKŁADU WSPÓŁRZĘDNYCH


  1. T( -xl, -yl )

  2. R(  )

  3. T( xl, yl )

P’ = T(xl, yl) * R() * T(-xl, -yl) * P = Mz * P

1 0 xl cos -sin 0 1 0 -xl

[ 0 1 yl ] * [ sin cos 0 ] * [ 0 1 -yl ] = Mz

0 0 1 0 0 1 0 0 1


SKALOWANIE WZGLĘDEM LOKALNEGO UKŁADU WSPÓŁRZĘDNYCH

  1. T( -xl, -yl )

  2. S( Sx, Sy )

  3. T( xl, yl )

P’ = T(-xl, -yl) * S(Sx, Sy) * T(xl, yl) * P

PRZESTRZEŃ 3D



  • przesunięcie T(dx, dy, dz) =

1 0 0 dx

0 1 0 dy


= [ 0 0 1 dz ]

0 0 0 1


  • skalowanie S(Sx, Sy, Sz) =

Sx 0 0 0

0 Sy 0 0

= [ 0 0 Sz 0 ]

0 0 0 1


  • obrót Rz() =

cos -sin 0 0

sin cos 0 0

= [ 0 0 1 0 ]

0 0 0 1


  • obrót Rx() =

1 0 0 0

0 cos -sin 0

= [ 0 sin cos 0 ]

0 0 0 1


  • obrót Ry() =

cos 0 sin 0

0 1 0 0


= [ -sin 0 cos 0 ]

0 0 0 1
RZUTOWANIE W PRZESTRZENI 3D

Rzutowanie – przekształcenia punktów prowadzące z przestrzeni n-wymiarowej do przestrzeni mniej niż n-wymiarowej
Punkt zbieżności linii, osiowe punkty zbieżności


  1. Jednopunktowy rzut perspektywiczny



  1. Perspektywa dwupunktowa



  1. Perspektywa trzypunktowa

TECHNIKI DRUKOWANIA

Drukarki: laserowe, atramentowe

Fotonaświetlarki: do klisz małoobrazkowych,

do przygotowania do druku

Proces przygotowania do druku:



  • wyciągi barwne CMYK

  • klisze z fotonaświetlarki

  • matryce drukarskie (blacha)

Rozdzielczość – liczba kropek na jednostkę długości

Raster poligraficzny – metoda klasyczna

Gęstość rastra – liczba linii na jednostkę długości

Metody uzyskiwania tonów:



  • mikrowzory

  • metoda klasyczna

  • metoda dyfuzji błędu

Im bardziej widoczny raster tym większy powinien być kąt nachylenia. Dla koloru czarnego 45, a dla żółtego najmniejszy.

Firma PANTONE:



  • Pantone Process Colors

  • Pantone Matching System Colors

  • Pantone Hexachrome Colors

RZUTY RÓWNOLEGŁE



  • rzuty prostokątne (ortogonalne)

  • rzuty ukośne

Rzuty aksynometryczne – na rzutnię nie równoległą do jakiejkolwiek płaszczyzny głównej układu współrzędnych:

  • izometryczne (kierunek razutowania równoległy do wektora (1, 1, 1)

  • inne

Bryła (stożek, piramida) widzenia.
PROCES RZUTOWANIA

  1. Prymitywy wejściowe we współrzędnych świata

  2. Obcięcie przez bryłę widzenia

  3. Rzutowanie na rzutnię

  4. Przekształcenie na współrzędne ekranu + określenie koloru pikseli

x’/d = x/z y’/d = y/z x’ = x/(z/d) y’ = y/(z/d)

1 0 0 0

0 1 0 0


Mper = [ 0 0 1 0 ]

0 0 1/d 0


1 0 0 0 x x x’ = x/(z/d)

0 1 0 0 y y y’ = y/(z/d)

[ 0 0 1 0 ] * [ z ] = [ z ] z’ = d

0 0 1/d 0 1 z/d w = 1

P’ = Mper * P
WYZNACZANIE POWIERZCHNI WIDOCZNYCH (ELIMINACJA POWIERZCHNI NIEWIDOCZNYCH)

Test zgrubny Test II





  • algorytm malarski – sortowanie ze względu na odległość

  • algorytm z-bufora – pamiętanie odległości piksela

Oprócz koloru pamiętamy współrzędną z:

void zBuffer

{ int pz /* wartość z rozpatrywanego piksela */

for (y = 0; y < YMAX; y++) {

for (x = 0; x < XMAX; x++) {

WritePixel(x, y, Background_Value)

WriteZ(x, y, 0)

}}

for (każdy_wielokąt) {



for (każdy piksel w rzucie wielokąta) {

pz= wartość z wielokąta bieżącego dla (x,y)

if (pz >= ReadZ(x,y)){

WriteZ(x, y, pz)

WritePixel(x,y, barwa_wielokąta)


z1


}}}}

za=z1-(z1-z2)*[(y1-ys)/(y1-y2)]



zb=z1-(z1-z3)*[(y1-ys)/(y1-y3)]

zp=zb-(zb-za)*[(xb-xp)/(xb-xa)]


©snauka.pl 2016
wyślij wiadomość