Algoritm de rasterizare a liniei
Această intrare sau secțiune despre grafică și algoritmi pe computer nu citează sursele necesare sau cei prezenți sunt insuficienți . |
Un algoritm de rasterizare a liniei este un algoritm grafic care se ocupă cu aproximarea unei linii sau a unui segment într-o reprezentare grafică discretă. Exemple de reprezentări grafice discrete pot fi monitorul, format din mii de pixeli , sau o imprimare, cu mii de puncte. Reprezentarea pe aceste „suprafețe” necesită o aproximare, desigur în cazuri non-banale.
În reprezentări nediscrete și, prin urmare, continue, această lucrare nu are loc. Exemple de reprezentări grafice continue sunt osciloscoapele tubului catodic .
Un exemplu al problemei poate fi văzut în figura 0:
În fundal vedeți o grilă, care reprezintă pixelii unei imagini. Segmentul roșu (de la punctul p1 la punctul p2) este segmentul pe care am dori să-l rasterizăm. În partea dreaptă vedem un exemplu de rasterizare. Am evidențiat în negru pixelii care ar trebui să se aprindă pentru a vizualiza segmentul de la punctul p1 la punctul p2.
Un algoritm simplu de rasterizare a liniei
Având în vedere două puncte p1 și p2, cu coordonatele (x 1 , y 1 ) și (x 2 , y 2 ), putem folosi următorul algoritm:
dx = x2 - x1 dy = y2 - y1 pentru x de la x1 la x2 { y = y1 + (y2 - y1) * (x - x1) / (x2 - x1) draw_point (x, y) }
În cazul nostru, am simplificat operațiunea presupunând că punctele sunt ordonate, adică Și . Algoritmul funcționează bine cu (figura 1.), dar devine destul de lent pe computere, datorită calculelor în virgulă mobilă.
Daca avem , punctele liniei devin „împrăștiate”, așa cum se arată în figura 2.
În cazul extrem al se atrage un singur punct.
Lista algoritmilor de rasterizare a liniei
Lista nu trebuie să fie completă:
- Algoritm DDA -
- Algoritm de linie Bresenham - optimizat pentru a utiliza numai adăugiri și pentru a evita utilizarea calculelor în virgulă mobilă.
- Algoritmul liniei Xiaolin Wu - poate realiza antialiasing
Rasterizarea poligonului
Algoritmul de rasterizare a poligonului este un algoritm de rasterizare care se ocupă cu convertirea unui poligon definit prin vârfurile sale într-o imagine raster (sau bitmap ).
Cea mai simplă problemă este de a converti un poligon gol, adică în care sunt definite doar laturile. În acest caz, se poate face o utilizare recursivă a unui algoritm de rasterizare a liniei pentru fiecare parte a poligonului.
Problema devine mai complicată în cazul poligoanelor umplute. În figura 1 putem vedea câteva exemple de poligon:
În aceste cazuri avem disponibili următorii algoritmi:
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere despre Algoritmul de Rasterizare a Liniei