Netezirea liniilor drepte și curbe

Când desenați o linie utilizând interfața GDI +, trebuie doar să specificați punctele de început și de sfârșit pentru poziția liniei și nu este necesar să furnizați date despre pixelii liniei intermediare. Interfața GDI + interacționează cu software-ul driverului de ecran pentru a determina ce pixeli de pe ecran trebuie evidențiate, astfel încât să apară o imagine de linie pe un anumit dispozitiv.







Luați în considerare trasarea unei linii roșii drepte dintr-un punct cu coordonate (4, 2) într-un punct cu coordonate (16, 10). Să presupunem că originea este situată în colțul din stânga sus al ecranului, iar unitatea de măsură este un pixel. De asemenea, presupuneți că axa X este îndreptată spre dreapta, iar axa Y este în jos. Figura de mai jos prezintă o imagine mărită a unei linii roșii desenate pe un fundal multicolor.

Pixelii roșii care alcătuiesc linia sunt opaci. Nu există pixeli parțiali transparenți în linie. Acest tip de desen liniar îl face neuniform în aspect, cu o anumită creștere, linia devine pas cu pas. Cu această abordare a reprezentării liniei, linia teoretică este aproximată printr-o succesiune de puncte.







Modurile mai complexe de a desena linii drepte constau în utilizarea unor pixeli parțial transparenți, împreună cu acelea absolut opace. Pentru pixelii liniei, specificați fie o culoare roșie pură, fie un amestec de roșu cu culoarea de fundal, în funcție de cât de aproape sunt acești pixeli față de linie. Acest tip de desen linie este numit anti-aliasing, vă permite să afișați liniile astfel încât acestea să arate mai fluide pentru ochiul uman. Figura de mai jos prezintă mai mulți pixeli, culoarea cărora este amestecată cu culoarea de fundal pentru a forma o linie netedă.

Smoothing poate fi, de asemenea, aplicat la curbe. Figura de mai jos prezintă o imagine mărită a unei elipse netezite.

Netezirea liniilor drepte și curbe

În figura de mai jos, aceeași elipsă este reprezentată pe scară largă în două variante - cu și fără anti-aliasing.

Pentru a desena linii drepte și curbe folosind anti-aliasing, creați o instanță a clasei Graphics și setați proprietatea SmoothingMode la AntiAlias ​​sau HighQuality. Apoi, apelați una dintre metodele de desenare din aceeași clasă grafică.







Trimiteți-le prietenilor: