Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 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.

Hasonló előadás


Az előadások a következő témára: "1 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."— Előadás másolata:

1 1 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 22

3 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.)

4 4 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),

5 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 P i közelítő pont K-re, vagy ÉK-re lépünk aszerint, hogy az egyenes F alatt, vagy fölött

6 6 A PQ egyenes egyenlete G(x,y) = a  x + b  y + c = 0 = dy  x - dx  y + (P.y  dx - P.x  dy) = 0 fölötte G(x,y) negatív, alatta pozitív. e(x i ) = 2  G(F)=2  G(x i +1,y i +1/2) = dy  (2  x) – dx  (2  y +1)+ 2  (P.y  dx - P.x  dy) Ha e(x i ) 0, akkor F az egyenes alatt;  ÉK e(x 0 ) = 2  dy- dx, de K = 2  dy és de ÉK = 2  (dx - dy)

7 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; a 0 0}{ az F fölött} begin {ÉK} x ++; y++; e:= e+deEK; end; GputPixel( x,y,szin ); end; {while} end; { procedure}

8 8 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); P i ut á n K-re, vagy DK-re l é p ü nk G(x,y) = xx + yy – rr = 0, e(x i ) = 4G(F) = 4G(x i +1, y i -1/2) e(x 0 ) = 5/4 - r, de K =2  x i + 3, de DK =2  (x i - y i ) + 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, de K -t é s de DK -t

9 9 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

10 10 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 ”

11 11 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.}

12 12 Az 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)

13 13 1. 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, HG AB, AI BC GF DC, DE, EF minden élről: { y1, x1, dx, dy, next }; y1<=y2

14 14 2. Az Aktív Élek Listája (AÉL): Indul á skor: az ÉT első p á szt á ja (HI, HG) Ciklusban: P á ronként 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: a kiürült élek eldobása az élek x értékének változása új élek az ÉT-ről az élek rendezése (x) Amíg AÉL és ÉT ki nem ürül

15 15 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

16 16 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

17 17 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.

18 18 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

19 19 Ö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 ó

20 20

21 21 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.


Letölteni ppt "1 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."

Hasonló előadás


Google Hirdetések