23
1 4.5. Raszter-konverzió 4.5. Raszter-konverzió A képelem látványát alkotó képpontok előállítása 1. Egyenes szakasz képpontjai 2. Sokszög lemez kitöltése

4.5. Raszter-konverzió

Embed Size (px)

DESCRIPTION

4.5. Raszter-konverzió. A képelem látványát alkotó képpontok előállítása Egyenes szakasz képpontjai Sokszög lemez kitöltése. 2. Raszter konverzió. A képelemet ábrázoló képpontok helye és színe) Minden képelem-típusra más eljárás. - PowerPoint PPT Presentation

Citation preview

Page 1: 4.5. Raszter-konverzió

1

4.5. Raszter-konverzió4.5. Raszter-konverzió

A képelem látványát alkotó képpontok előállítása

1. Egyenes szakasz képpontjai

2. Sokszög lemez kitöltése

Page 2: 4.5. Raszter-konverzió

22

Page 3: 4.5. Raszter-konverzió

3

Raszter konverzió

• A képelemet ábrázoló képpontok helye

és színe)

• Minden képelem-típusra más eljárás.

• 3D-ben:

4.7. Árnyalás (shading, textúra,stb.)

Page 4: 4.5. Raszter-konverzió

4

(1) Szakaszok raszter-konverziója

• Adott: P és Q a KKR-ben

Keressünk köztes képpontokat

• Durva erőszak: m = dy / dx és

for x:= P.x to Q.x (step 1) do

GputPixel(x, y:= m*(x-P.x)+P.y, szín);

• Kifogások: lassú (valós aritmetika, kerekítés),

Page 5: 4.5. Raszter-konverzió

5

A felezőpontos (Bresenham) eljárás

• dx = Q.x - P.x, dy = Q.y - P.y

• (dx = 0, dy = 0, dx = dy könnyű esetek)

• Síknyolcadok; minta: 0 < dy < dx

• Növekményes eljárás:

• Ha Pi közelítő pont K-re, vagy ÉK-re lépünk

• aszerint, hogy az egyenes F alatt, vagy fölött

Page 6: 4.5. Raszter-konverzió

6

A PQ egyenes egyenlete

• G(x,y) = ax + by + c = 0 = dyx - dxy + (P.ydx - P.xdy) = 0

• fölötte G(x,y) negatív, alatta pozitív.

• e(xi) = 2G(F)=2G(xi+1,yi+1/2) = dy (2x) – dx(2y +1)+ 2 (P.y dx - P.xdy)

• Ha e(xi) < 0, akkor F az egyenes fölött: Kha >0, akkor F az egyenes alatt; ÉK

• e(x0) = 2dy- dx, deK = 2dy és deÉK = 2(dx - dy)

Page 7: 4.5. Raszter-konverzió

7

Az eljárás váza:procedure GRasCoLine( P,Q, szín);

begin dx:= Q.x - P.x; dy:= Q.y - P.y; {esetszétválasztás; 0 < dy < dx ág: } e :=2*dy-dx; deK :=2*dy; deEK := 2*(dy-dx); while x=P.x, x <= Q.x do begin

if e<=0 then {az F alatt} Keletre lép

else {e>0} { az F fölött} Észak-keletre lép;

GputPixel( x,y,szin ); end; {while}end; { procedure}

Page 8: 4.5. Raszter-konverzió

8

A ciklus magja:

if e<=0 then {az F alatt}

begin {K} x ++; y; e:= e+deK; end;

else {e>0} { az F fölött}

begin {ÉK} x ++; y++; e:= e+deEK; end;

GputPixel( x,y,szin );

Page 9: 4.5. Raszter-konverzió

9

Körvonal raszter-konverziója

• A (0,0) középpontú, r sugarúkör rajzolása

• Nyolcad: (0,r)-(r,0)-ig; put8pixel(x, y);

• Pi után K-re, vagy DK-re lépünk

• G(x,y) = xx + yy – rr = 0, e(xi) = 4G(F) = 4G(xi+1, yi-1/2)

• e(x0) = 5/4 - r, deK=2xi + 3, deDK=2 (xi - yi) + 5

függ az x-től (e másodfokú!), de a 2. differencia=2

• Minden lépésben módosítjuk y-t, e-t, deK-t és deDK-t

Page 10: 4.5. Raszter-konverzió

10

(2) Sokszöglemezek kitöltése

1. Zárt terület elárasztása

2. Az Aktív Élek Listája - eljárás

3. A jobbra festő eljárás

Page 11: 4.5. Raszter-konverzió

11

2.1. Zárt terület elárasztása

• Interaktív programoknál

• Egy zárt területen belül rámutatunk egy pontra

• „forráspont” és „gát”

Page 12: 4.5. Raszter-konverzió

12

procedure GFloodFill4(x,y:Gpixxy; hatar: Gcolor);begin

{ festőszín: global fillColor } if GGetPixel(x,y)<>hatar AND GGetPixel(x,y)<> fillColor then begin Gputpixel (x ,y ,fillColor); FloodFill4(x+1,y ,hatar); FloodFill4(x ,y+1,hatar); FloodFill4(x-1,y ,hatar); FloodFill4(x ,y-1,hatar); end;{if}end; {GFloodFill}

{Az árasztás lassú és zabálja a vermet!! Javítások: koherenciával.}

Page 13: 4.5. Raszter-konverzió

*. Egy sokszög belső pontjai

• Egy sokszög belső pontjábólinduló félegyenesen:

páratlan számú átmetszés,

• Külső pontokból induló félegyenesen :páros számú átmetszés

• (minden félegyenesen egyformán)

Page 14: 4.5. Raszter-konverzió

14

2.2. Az AÉL (aktív élek listája) - eljárás

• Egy sokszög belső pontja: páratlan számú átmetszés,

• Külső pontja: páros számú átmetszés egy félegyenesen

• (minden félegyenesen egyformán)

Page 15: 4.5. Raszter-konverzió

15

A sokszög él-táblája (ÉT):

• A pászták láncolt listája: a pásztán kezdődő élek adatai; x szerint rendezve

HI, HGAB, AIBCGFDC, DE, EF

• minden élről: { y1, x1, dx, dy, next }; y1<=y2

Page 16: 4.5. Raszter-konverzió

16

Az Aktív Élek Listája (AÉL):

• Induláskor az ÉT első pásztája (HI,HG)

• Ciklusban:

• Páros festés a pásztán:az 1.-2., a 3.-4.,… él x értéke között

• Áttérés új pásztára:az élek x értékének változásaa kiürült élek kidobásaúj élek az ÉT-rőlaz élek rendezése (x)

• Amíg AÉL és ÉT ki nem ürül

Page 17: 4.5. Raszter-konverzió

17

Az AÉL eljárás értékelése

• Tetszőleges sokszögre, szigetekre is

• Vízszintes élek és szélső csúcsok is.

• Adatszerkezet: 2x az élek száma;csak egészszámok (és mutatók)

• Rendezés: gyors, beszúró rendezés

Page 18: 4.5. Raszter-konverzió

18

2.3. A jobbra festő eljárás

• A sokszög minden élére:

• tőle jobbra minden képpontot XOR-ral befestünk.

• A külső pontokat páros számszor festjük; nem változnak.

• Egy „baloldali” él megváltozik, „jobboldali” nem! A körvonal után-festése.

• Elég a befoglaló dobozra

Page 19: 4.5. Raszter-konverzió

19

Terület kitöltése mintázattal

• Mintázat (pattern): képpont-lap (négyzet)

• „Csempézés” (hálóban)

• Egy horgonypontban kezdve

• A kitöltő eljárástól kapott képpontokkal maszkolva.

• A térben: textúra, a lap helyzete szerint transzformálva.

Page 20: 4.5. Raszter-konverzió

20

Megoldási elvek a szerelőszalagon

• Sebesség és tároló-igény

• Tárgytér és képtér (valós-egész)

• A pászták követése

• Koherenciák (pásztán, pászták között)

• Dobozolás

• Térfelosztás

• Rendezés

Page 21: 4.5. Raszter-konverzió

21

SZeSZa - összefoglalás

• Grafikus szerelőszalag: a kép előállításának műveletei:

• A képelemek előkészítése

Leképezés a tárgytérből a képtérbe

Képkivágás

Láthatóság-takarás

Raszter-konverzió

Page 22: 4.5. Raszter-konverzió

2222

Page 23: 4.5. Raszter-konverzió

A grafikus alapszoftver

• BGI (és mások): KKR-ben kapott 2D képelemek, a Képelemek előkészítését és a Leképezést az AP végzi. korlátozott funkciók.

• OpenGL – 3D alapszoftver

• Grafikus munkaállomások: pl. a láthatóságot hard(firm)verben.

• Grafikus modellező rendszerekbe beépítve.