[1] Bezpłatna biblioteka graficzna Microchip Graphics Library dla mikrokontrolerów PIC24 i PIC32: jak zacząć i pierwsze przykłady

Funkcje rysowania okręgów

Okręgi tak samo jak linie można rysować trzema różnymi stylami linii: ciągłą, kropkowaną i składającą się z odcinków łuków. Dodatkowo można wypełnić wnętrze okręgu dowolnym kolorem, czyli inaczej mówiąc narysować koło o wybranym kolorze. Do rysowania okręgu zostało zdefiniowane makro Circle(x,y,r), gdzie:

  • x, y współrzędne środka okręgu,
  • r promień w pikselach.

Do rysowania koła jest przeznaczone makro FillCircle(x,y,r). Przed wysyłaniem tych makr trzeba ustawić kolor rysowania okręgu lub koła funkcją SetColor i styl rysowania okręgu funkcją SetLineType (dokładnie tak samo jak w przypadku rysowania linii). Na listingu 3 pokazano fragment programu rysującego 2 okręgi i koło, a na fotografii 6 wynik jego działania.

List. 3. Funkcje rysowania okręgów

Fot. 6. Efekt działania programu rysowania okręgów (listing 3)

Funkcje wyświetlania tekstu

Funkcje wyświetlania tekstu powinny być jednymi z podstawowych funkcji warstwy Primitive Layer. Tak też jest w rzeczywistości: jeżeli chcemy wyświetlić statycznie jakiś tekst to można z powodzeniem stosować te funkcje. Jednak kiedy różne teksty mają się pojawiać w tej samej lokalizacji zależnie od wyniku działania programu użytkownika, to pojawiają się problemy. W takich sytuacjach dobrze sprawdza się funkcja nadpisania (overwrite). Na istniejącym tekście wyświetlamy nowy. Jednak funkcje z warstwy Primitive działają tak jakbyśmy pisali ołówkiem w tym samym miejscu, bez uprzedniego wytarcia poprzedniego napisu gumką.

Tekst jest wyświetlany przez funkcje OutText lub OutTextXY. Argumentem funkcji OutText jest wskaźnik na bufor z łańcuchem znaków do wyświetlania. W przypadku funkcji OutTextXY dodatkowo są podawane 2 współrzędne początku wyświetlania znaków.

Przed wywołaniem OutText trzeba: mieć zdefiniowana tablicę z wzorcami znaków, ustawić kolor znaków. Na listingu 4 pokazano przykład wyświetlania tekstu „Mikrokontroler.pl, a wynik działania jest pokazany na fotografii 7.

List. 4. Wyświetlenie tekstu „Mikrokontroler.pl

Fot. 7. Efekt działania programu z listingu 4

Próba ponownego wyświetlenia tekstu na tym samym miejscu powoduje „zlanie się obu napisów (fotografia 8). Temu zjawisku można zapobiec wymazując poprzedni tekst przez „narysowanie na nim prostokąta o kolorze tła, a potem wysyłając na czysty obszar nowy tekst. Jest to jednak nieco niewygodne, bo wymaga precyzyjnego definiowania obszaru „kasowania o rozmiarze zależnym od wielkości czcionki i długości napisu. Biblioteka oferuje inne rozwiązanie, które nie ma tych wad. Tekst można wyświetlać posługując się obiektem Static Text (dokładniej omówimy w drugiej części artykułu) umieszczonym w wyższej warstwie Object Layer.

Fot. 8. Efekt nadpisania dwu tekstów

W ten sposób omówiliśmy większość funkcji warstwy Primitive. Z oczywistych względów jest to opis pokazujący możliwości rysowania a nie szczegóły działania wszystkich funkcji i makr łącznie z mechanizmami konfigurującymi działanie tej warstwy. Szczegółowe informacje można znaleźć w pliku pomocy, który jest dołączony biblioteki.

Uwaga! Druga część artykułu jest dostępna pod adresem.

O autorze