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

Alapvető raszteres algoritmusok, szakasz rajzolása, DDA, MidPoint algoritmus.

Hasonló előadás


Az előadások a következő témára: "Alapvető raszteres algoritmusok, szakasz rajzolása, DDA, MidPoint algoritmus."— Előadás másolata:

1 Alapvető raszteres algoritmusok, szakasz rajzolása, DDA, MidPoint algoritmus

2 Alapvető raszteres algoritmusok A raszter egyenlő távolságban lévő pontokból álló mező. Egy raszter terület pontjait kétdimenziós tömb elemeiként címezhetjük. Az alapvető raszteres algoritmusok közé tartozik a poligonvonal megadása is. Ezt a Delphi-ben kétféleképpen tehetjük meg: Két dimenziós tömbbel: Var Poly: Array [1..N,1..2] of Integer; Rekord szerkezettel: Type PointType  Record x,y : Integer; End; Var Poly : Array [1..N] of PointType;

3 A képernyő koordinátái A képernyő koordinátáinak megadásakor a derékszögű koordináta-rendszert vesszük figyelembe, azonban a (0,0) pont nem a bal alsó, hanem a bal felső sarokban található. A itt ismertetett raszteres algoritmusok a bal alsó kezdőpontot használják. Ezért egy ponttransz- formációval áttérhetünk az ábrán bemutatott, egyébként a monitorok kezelésének szokásos rendszerére. Erre használatos a Transf eljárás.

4 Szakasz rajzolásának kritériumai A szakasznak “egyenes vonalnak” kell látszania Pontosnak kell lennie Fedettsége legyen állandó függetlenül a vonal hosszától és hajlásszögétől Gyors legyen

5 Egyszerű növekményes módszer Az egyenes y=mx/b alakú egyenletét használjuk kiindulási alapul. Így megkapjuk az egyenes y tengelypontját (0,b). Majd meghatározzuk az m=dy/dx képlet segítségével, hogy mennyit lépjünk balra és mennyit felfelé az, hogy megkaphassuk az egyenes következő pontját. Így egy növekményes algoritmust kaptunk. Nem ad szép képet, mert nekünk kell kerekítenünk a kapott (x,y) értékeket, mert az ideális egyenes helyett csak közelítő raszter pontokat kaphatunk.

6 DDA algoritmus Az előbbi módszer hiányosságain segít Neve a digitális differenciál-analizátor szavak kezdőbetűiből ered. A dx-et és dy-t kedvezőbben választja meg. A nagyobb elmozdulás irányában legyen a növekmény egy, tehát Max(dx,dy)  1.

7

8 MidPoint algoritmus Kiindulási alap az egyenes egyenlete (y=mx/b) Adott a megrajzolandó szakasz, és a kezdő és végpontja Készítenünk kell egy Line(x1,y1,x2,y2) eljárást. Legyen dx:  x2  x1 és dy:  y2  y1. Ekkor m=dy/dx. Tegyük fel, hogy az egyenes meredekségére a következő: 0< =m< =1 tehát az egyenesnek a vízszintes tengellyel bezárt  szöge 0  és 45  közé esik, ugyanis m=tg(α). Ebből az következik, hogy az x tengely irányú elmozdulás nagyobb mint az y tengelyű elmozdulás. A növekményes algoritmus az x érték eggyel való növelésekor kiszámolja, hogy mennyivel kell változtatni az y koordinátát. Az egyenes ideális nyomvonala valahol a két y koordináta között halad. Az a feladatunk, hogy a két lehetséges y koordináta közül azt válasszuk ki, amelyiknek az ideális egyenestől mért eltérése a kisebb.

9

10

11 Az algoritmust most már csak fel kell oldanunk a kezdeti megszorítások alól. Ugyanis az egyenesnek a vízszintes tengellyel bezárt szöge 0  és 45  közé esik. Ebből az is következik, hogy az x tengely irányú elmozdulás nagyobb, mint az y tengely irányába eső. Egyszerű kiegészítéssel az algoritmus teljessé tehető. A kiindulási feladat alapján valójában nyolc eset különböztethető meg, figyelembe véve a kezdő és végpontok viszonyát is. Néhány esetben a koordinátákat nem növelni kell eggyel, hanem csökkenteni. Ezért bevezetjük az sx és sy váltózókat, ezekben a növekményt tároljuk, értékük -1,0 és +1 lehet. Ha a meredekség nagyobb mint 1 akkor a dx és dy szerepe fölcserélődik.

12


Letölteni ppt "Alapvető raszteres algoritmusok, szakasz rajzolása, DDA, MidPoint algoritmus."

Hasonló előadás


Google Hirdetések