Licencja Creative Commons

Autorem poniższego opracowania jest dr Piotr A. Dybczyński z Instytutu Obserwatorium Astronomiczne UAM w Poznaniu. Jest to swobodne tłumaczenie fragmentów oryginalnej dokumentacji, opracowanej w języku angielskim przez autora biblioteki, Tima Pearsona. Autor wyraził zgodę zarówno na wykonanie tłumaczenia dowolnych fragmentów tej dokumentacji jak i jego upublicznienie. Oryginalna dokumentacja znajduje się pod adresem: http://www.astro.caltech.edu/~tjp/pgplot .



Opisy funkcji biblioteki PGPLOT w wolnych chwilach uzupełniam!
Ostatnia aktualizacja: 27.11.2023, 10:53



Opis wybranych funkcji biblioteki PGPLOT w wersji 5.2



cpgarro - rysuje strzałkę

cpgask - ustawia flagę "prompt" dla cpgpage

cpgaxis - rysuje oś liczbową

cpgbin - rysuje prosty histogram z pogrupowanych danych

cpgbox - rysuje ramkę wokół wykresu z osiami, opisami itp.

cpgcirc - rysuje koło lub okrąg

cpgclos - zamyka aktywne wyjście graficzne

cpgdraw rysuje linię do (x,y)

cpgend - zamyka wszystkie aktywne wyjścia graficzne

cpgenv - tworzy obszar rysowania i generuje opisaną ramkę z osiami

cpghist - tworzy histogram ze zbioru surowych danych

cpglab - opisuje osie i wypisuje tytuł rysunku

cpglen - wylicza rozmiar tekstu

cpgline - rysuje linię łamaną

cpgmtxt - umieść opis na lub wokół rysunku

cpgopen - otwiera urządzenie graficzne do rysowania

cpgpoly - rysuje dowolny wielokąt z wypełnieniem

cpgpt - rysuje serię markerów w zadanych punktach

cpgpt1 - rysuje jeden marker na wskazanej pozycji

cpgptxt - wypisz tekst we wskazanym miejscu pod wskazanym kątem

cpgrnge - dobiera "ładne i okrągłe" wartości na końce osi

cpgsch - ustala wysokość liter

cpgsci - ustala kolor pisaka

cpgscr - definiuje nowy kolor

cpgsfs - ustal atrybuty wypełniania obszarów

cpgshs - ustal styl zakreskowania obszarów

cpgsls - ustala styl linii

cpgslw - ustawia grubość linii

cpgstbg - ustala kolor tła wypisywanego tekstu

cpgtext - wypisuje text na zadanej pozycji

cpgtick - rysuje i opisuje pojedynczy "tick" na osi liczbowej




cpgarro - rysuje strzałkę

void cpgarro(float x1, float y1, float x2, float y2);

Rysuje strzałkę od pozycji (x1,y1) do pozycji (x2,y2). Wielkość strzałki na końcu zależy od aktualnej wysokości liter (funkcja cpgsch() ). Kształt i styl zakończenia strzałki określa się za pomocą funkcji cpgsah().


cpgask - ustawia flagę "prompt" dla cpgpage

void cpgask(int flag);

Przestawia stan flagi "prompt", definiującej zachowanie programu po napotkaniu wywołania funkcji cpgpage(). Jeśli flaga "prompt" jest włączona, komputer wyświetli napis: "Type RETURN for next page:" i będzie czekał na naciśnięcie klawisza, zanim przejdzie do rysowania następnej strony. Domyślnie flaga "prompt" jest włączona na urządzeniach pozwalających na pracę interaktywną, a wyłączona na pozostałych. Argument niezerowy (prawda) włącza flagę, argument równy zero (fałsz) wyłącza.


cpgaxis - rysuje oś liczbową

void cpgaxis(const char *opt, float x1, float y1, float x2, float y2, float v1, float v2, float step, int nsub, float dmajl, float dmajr, float fmin, float disp, float orient);

Rysuje oznakowaną i opisaną oś liczbową z podziałką, od (x1,y1) do (x2,y2). Pozostałe parametry to:

  • opt - to ciąg liter ujęty w cudzysłowy, sterujący wyglądem osi. Poszczególne litery znaczą:
    • L - skala ma być logarytmiczna
    • N - maja być opisy liczbowe
    • 1 - wymuś opisy w formie zmiennoprzecinkowej (patrz cpgnumb())
    • 2 - wymuś opisy w formie expotencjalnej (patrz cpgnumb())
  • v1 - wartość przypisana początkowi osi (x1,y1).
  • v2 - wartość przypisana końcowi osi (x2,y2).
  • step - krok z jakim sa rysowane "dłuższe" kreski na osi, od zera co całkowitą wielokrotność step. Jeśli podamy step=0.0 to funkcja sama inteligentnie wybierze rozsądną wartość.
  • nsub - ile "mniejszych" kresek rysować pomiędzy "większymi". Jeśli nsub<=1 to "podkresek" na podziałce nie będzie. Parametr jest ignorowany gdy step=0.0.
  • dmajl - długość części "dużej" kreski po lewej stronie osi (patrząc od początku do końca) w jednostkach wysokości litery (funkcja cpgsch() ).
  • dmajr - długość części "dużej" kreski po prawej stronie osi (patrząc od początku do końca)w jednostkach wysokości litery (funkcja cpgsch() ).
  • fmin - jaki ułamek długości "dużej" kreski ma stanowić długość "małej".
  • disp - przesunięcie opisów liczbowych względem osi, mierzone w prawo w jednostkach wysokości litery (funkcja cpgsch() ).
  • orient - kąt pomiędzy osią a kierunkiem opisów liczbowych, od do 360°.

cpgbin

void cpgbin(int nbin, const float x[], const float data[], int center);

Funkcja rysuje prosty histogram z pogrupowanych danych (wysokości słupków) zawartych w tablicy float data[], którym odpowiadają na osi poziomej wartości z tablicy float x[]. Słupków jest nbin, a flaga center decyduje, czy wartości z tablicy float x[] odpowiadają środkom (center = 1) czy lewym krawędziom (center = 0) słupków.


cpgbox - rysuje ramkę wokół wykresu z osiami, opisami itp.

void cpgbox(const char *xopt, float xtick, int nxsub, const char *yopt, float ytick, int nysub);

Funkcja ta tworzy obramowanie rysunku (ang. vieport), np. wykresu, i w zależności od podanych parametrów rysuje osie liczbowe i tworzy ich opisy. Poszczególne parametry maja następujące znaczenie:

  • xopt - ciąg znaków sterujących tworzeniem poziomej osi wykresu.
  • yopt - ciąg znaków sterujących tworzeniem pionowej osi wykresu. Znaczenie poszczególnych znaków (kolejność dowolna) w obu tych parametrach jest następujące:
    • A - rysuj oś poziomą dla y=0 a pionową dla x=0
    • B - rysuj oś poziomą na dole ramki a pionową po lewej
    • C - rysuj oś poziomą na górze ramki a pionową po prawej
    • G - zamiast osi rysuj siatkę linii, odpowiednio pionowych lub poziomych
    • I - rysuj kreski skali na osi na zewnątrz wykresu zamiast do wewnątrz
    • L - skala danej osi ma być logarytmiczna
    • N - twórz liczbowe opisy osi pionowej po lewej a poziomej na dole
    • P - "większe" kreski skali mają być po obu stronach osi (ignorowany gdy podamy również I)
    • M - twórz liczbowe opisy osi pionowej po prawej a poziomej u góry
    • T - rysuj "dłuższe" kreski (ang. major Ticks)skal na osiach
    • S - rysuj "krótsze" kreski pomiędzy dłuższymi
    • V - dotyczy tylko osi pionowej: pisz opisy liczbowe poziomo, a nie wzdłuż osi
    • 1 - wymuś opisy w formie zmiennoprzecinkowej (patrz cpgnumb())
    • 2 - wymuś opisy w formie expotencjalnej (patrz cpgnumb())

Aby otrzymać typowy układ współrzędnych na krawędziach wykresu użyj "BC" w obu przypadkach. Jeśli nie użyjesz żadnej z liter ABC to kreski skal nie będą rysowane.

  • xtick - odstęp między głównymi kreskami osi poziomej. Jeśli podamy 0.0 to system wybierze rozsądną wartość by było ich co najmniej trzy.
  • nxsub - na ile kawałków dzielić główne przedziały osi poziomej. Zero pozostawia wybór domyślny.
  • ytick - odstęp między głównymi kreskami osi poziomej. Jeśli podamy 0.0 to system wybierze rozsądną wartość by było ich co najmniej trzy.
  • nxsub - na ile kawałków dzielić główne przedziały osi pionowej. Zero pozostawia wybór domyślny.

Funkcja cpgbox() jest często wołana automatycznie przez funkcję cpgenv(). Wygląd osi zależy wtedy od parametru axis funkcji cpgenv() następujaco:

  • axis = -1 - stosujemy w obu osiach "BC"
  • axis = 0 - stosujemy w obu osiach "BCNST"
  • axis = 1 - stosujemy w obu osiach "ABCNST"
  • axis = 2 - stosujemy w obu osiach "ABCGNST"

Aby opisać oś w mierze czasowej (dni, godziny, minuty, sekundy) lub kątowej (stopnie, minuty, sekundy) zastosuj funkcję cpgtbox().


cpgcirc - rysuje koło lub okrąg

void cpgcirc(float xcent, float ycent, float radius);

Rysuje okrąg lub koło (wypełniony okrąg) o środku w (xcent,ycent) i promieniu radius, zależnie od wartości atrybutu "Fill Area Style", ustawianego funkcją cpgsfs(). Domyślnie rysuje wypełnione koło.


cpgclos - zamyka aktywne wyjście graficzne

void cpgclos(void);

Funkcja ta zamyka używane wyjście graficzne. Po jej wykonaniu dalsze rysowanie możliwe jest albo po wybraniu innego wyjścia graficznego funkcją cpgslct() albo po otwarciu nowego urządzenia funkcją cpgopen(). Jeżeli skończysz program zapominając wywołać funkcję cpgclos() to część rysunku może zostać utracona.


cpgdraw rysuje linię do (x,y)

void cpgdraw(float x, float y);

Funkcja rysuje odcinek od bieżącej pozycji "pisaka" do punktu (x,y). Jeśli odcinek wykracza poza obszar rysunku linia jest ucinana na jego krawędzi.


cpgend - zamyka wszystkie aktywne wyjścia graficzne

void cpgend(void);

Zamyka wszystkie aktywne wyjścia graficzne. Jeżeli skończysz program zapominając wywołać funkcję cpgend() lub cpgclos() to część rysunku może zostać utracona.


cpgenv - tworzy obszar rysowania i generuje opisaną ramkę z osiami

void cpgenv(float xmin, float xmax, float ymin, float ymax, int just, int axis);

Funkcja definiuje obszar rysowania. Argumenty oznaczają:

  • xmin i xmax - zakres współrzędnej poziomej (x)
  • ymin i ymax - zakres współrzędnej pionowej (y)
  • just - skale na osiach, 1 -> równe, 0 -> niezależne
  • axis - określa czy i jakie osie rysować:
    • axis=-2 - nie rysuje nic, nawet ramki
    • axis=-1 - rysuje tylko prostokątną ramkę
    • axis= 0 - rysuje ramkę i opisuje ją jako osie
    • axis= 1 - jak wyżej, ale dodatkowo osie dla x=0 i y=0
    • axis= 2 - jak wyżej ale dodatkowo siatka poziomych i pionowych linii
    • axis=10 - tylko ramka i logarytmiczna oś pozioma
    • axis=20 - tylko ramka i logarytmiczna oś pionowa
    • axis=30 - obie osie logarytmiczne

Bardziej wyszukane sterowanie rysowaniem osi można uzyskać za pomocą funkcji cpgaxis().


cpghist - tworzy histogram ze zbioru surowych danych

void cpghist(int n, const float *data, float datmin, float datmax, int nbin, int pgflag);

Funkcja w znacznie zautomatyzowany sposób tworzy histogram słupkowy ze zbioru danych. Znaczenie argumentów jest następujące:

  • n - liczba wartości danych
  • data - nazwa wektora (typu float!) zawierającego dane. Pierwsze n wartości zostanie użytych więc rozmiar wektora musi byc wiekszy lub równy n.
  • datmin - minimalna wartość wzięta do histogramu
  • datmax - maksymalna wartość wzięta do histogramu
  • nbin - na ile słupków równej szerokości podzielić dane (nie więcej niż 200)
  • pgflag - flaga decydująca o sposobie generowania i wyglądzie histogramu:
    • pgflag=0 - funkcja cpghist() automatycznie woła cpgenv(), tworząc środowisko dopasowane do histogramu
    • pgflag=1 - histogram jest tworzony w aktualnym oknie
    • pgflag=2 lub 3 - histogram składa się z wypełnionych słupków
    • pgflag=4 lub 5 - histogram jest rysowany tylko kreską

cpglab - opisuje osie i wypisuje tytuł rysunku

void cpglab(const char *xlbl, const char *ylbl, const char *toplbl);

Argumenty to:

  • xlbl - tekst stanowiący opis osi x (zostanie wypośrodkowany)
  • ylbl - tekst stanowiący opis osi y (zostanie wypośrodkowany)
  • xlbl - tekst stanowiący tytuł rysunku, zostanie wypisany nad wykresem (zostanie wypośrodkowany)

cpglen - wylicza rozmiar tekstu

void cpglen(int units, const char *string, float *xl, float *yl);

Funkcja wyznacza poziomy (xl) i pionowy (yl) rozmiar łańcucha (string), gdyby został wypisany. Pierwszy argument określa w jakich jednostkach podana będzie odpowiedź:

  • units=0 - w znormalizowanych jednostkach urządzenia graficznego
  • units=1 - w calach
  • units=2 - w milimetrach
  • units=3 - w pixelach (kropkach) urządzenia graficznego
  • units=4 - we współrzędnych używanych do rysowania
  • units=5 - jako ułamek obszaru rysowania (ang. vieport)

cpgline - rysuje linię łamaną

void cpgline(int n, const float *xpts, const float *ypts);

Funkcja rysuje linię z jednego lub więcej połączonych ze sobą kolejno odcinków, używając aktualnego koloru, stylu i grubości linii. Argumenty oznaczają:

  • n - liczba wierzchołków łamanej
  • xpts - wektor (typu float[]!) zawierający współrzędną poziomą kolejnych wierzchołków
  • ypts - wektor (typu float[]!) zawierający współrzędną pionową kolejnych wierzchołków

cpgmove - przesuń "pisak" bez rysowania

void cpgmove(float x, float y);

Funkcja zmienia aktualną pozycję "pisaka" na (x,y) bez rysowania linii.


cpgmtxt - umieść opis na lub wokół rysunku

void cpgmtxt(const char *side, float disp, float coord, float fjust, const char *text);

Funkcja wypisuje tekst (text) w miejscu opisanym parametrami:

  • side - to litera B (bottom), T (top), L (left) lub R (right), wskazującą na krawędź rysunku, przy której chcemy umieścić napis. Do liter L i R można dodać literę V, co spowoduje, że napis wypisany zostanie prostopadle do wskazanej krawędzi (czyli poziomo) a nie równolegle do niej.
  • disp - podaje przesunięcie napisu względem wskazanej krawędzi, w jednostkach wysokości litery. Dodatnie wartości oznaczają przesunięcie na zewnątrz rysunku, ujemne do wewnątrz.
  • coord - wskazują miejsce wypisania napisu jako ułamek długości wskazanej krawędzi (czyli 0.5 to środek)
  • fjust - określa, justowanie tekstu. Wartość 0.0 powoduje, że lewy koniec napisu pojawi sie w miejscu opisanym przez parametr coord, wartość 1.0, że prawy koniec, wartość 0.5, że napis zostanie wypośrodkowany względem coord. Możliwe są też wartości pośrednie.

cpgnumb

void cpgnumb(int mm, int pp, int form, char *string, int *string_length);

(jak znajdę czas to napiszę tłumaczenie opisu tej funkcji, póki co szukaj tu)


cpgopen - otwiera urządzenie graficzne do rysowania

int cpgopen(const char *device);

Funkcja zwraca wartość dodatnią jeśli skutecznie otworzyła urządzenie. Staje się ono domyślnym miejscem rysowania do chwili wybrania innego urządzenia funkcją cpgslct(), zamknięcia tego urządzenia funkcją cpgclos() lub zamknięcia wszystkich urządzeń funkcją cpgend().

Jeżeli urządzenia nie udało się otworzyć, funkcja zwraca 0 lub wartość ujemną i dlatego należy zawsze sprawdzać wartośc zwróconą przez funkcję cpgopen().

Jedynym argumentem tej funkcji jest ciąg znaków ujęty w cudzysłowy. Mamy tu następujące możliwości:

  • pełny opis w postaci "urządzenie/typ" lub "plik/typ", gdzie typ określa typ jednego z obsługiwanych przez dana instalacje biblioteki urządzeń, urządzenie jego nazwę a plik nazwę pliku w którym zapisany zostanie rysunek wskazanego typu. Nazwa pliku może zawierać ścieżkę do pliku.
  • skrócony opis w postaci "/typ", co spowoduje użycie domyślnej nazwy urządzenia lub pliku
  • skrócony opis w postaci"plik", wtedy typ jest pobierany z odowiednie zmiennej środowiskowej (PGPLOT_TYPE).
  • opis w postaci jednej spacji: " " - wtedy typ urządzenia zostanie pobrany ze zmiennej środowiskowej PCPLOT_DEV lub będzie to /NULL, gdy zmienna nie jest zdefiniowana. Nazwa ewentualnego pliku będzie domyślna, np. pgplot.ps
  • pojedynczy znak zapytania: "?" - wtedy program w chwili wywołania funkcji cpgopen() wyświetli komunikat: 'Graphics device/type (? to see list, default XXX):, gdzie XXX jest ewentualnie pobrane ze zmiennej PCPLOT_DEV.
  • opis w postaci tekstu zaczynającego się od znaku zapytania. Wtedy tekst ten będzie użyty do zapytania użytkownika o typ urządzenia.

Nazwy typów urządzeń można pisać małymi i dużymi literami, po podaniu niewłaściwej odpowiedzi zapytanie zostanie powtórzone.

Przykłady poprawnych wartości argumentu funkcji cpgopen():

  • "?".
  • "/ps",
  • "rysunek.ps/ps",
  • "katalog1/katalog2/plik.png/PNG",
  • "?Podaj proszę nazwę urządzenia: ".

cpgpage

void cpgpage(void);

(jak znajdę czas to napiszę tłumaczenie opisu tej funkcji, póki co szukaj tu)


cpgpoly - rysuje dowolny wielokąt stosując ustalone wypełnienie

void cpgpoly(int n, const float *xpts, const float *ypts);

Funkcja rysuje wielokąt o n wierzchołkach, których współrzędne otrzymuje w tablicach xpts[i],ypts[i]. Tablice xpts[] i ypts[] muszą być oczywiście typu float!


cpgpt - rysuje serię markerów w zadanych punktach

void cpgpt(int n, const float *xpts, const float *ypts, int symbol);

Funkcja rysuje n markerów graficznych o kodzie symbol w miejscach o współrzędnych (xpts[i],ypts[i]). Tablice xpts[] i ypts[] muszą być oczywiście typu float!

Parametr symbol to kod decydujący o wyglądzie markera:

  1. kod równy -1 lub -2 to kropka o grubości aktualnej grubości linii
  2. kody -3 ... -31 rysują wielokąt regularny o |symbol| wierzchołkach. Aktualny styl wypełniania jest brany pod uwagę.
  3. kody 0 ... 31 to standardowe markery
  4. kody 32 ... 127 to znaki kodu ASCII
  5. kody powyżej 127 powodują wyrysowanie odpowiedniego "symbolu Hershey-a"

cpgpt1 - rysuje jeden marker na wskazanej pozycji

void cpgpt1(float xpt, float ypt, int symbol);

Funkcja rysuje jeden markerów graficznych o kodzie symbol w miejscu o współrzędnych (xpt,ypt).

Parametr symbol to kod decydujący o wyglądzie markera:

  1. kod równy -1 lub -2 to kropka o grubości aktualnej grubości linii
  2. kody -3 ... -31 rysują wielokąt regularny o |symbol| wierzchołkach. Aktualny styl wypełniania jest brany pod uwagę.
  3. kody 0 ... 31 to standardowe markery
  4. kody 32 ... 127 to znaki kodu ASCII
  5. kody powyżej 127 powodują wyrysowanie odpowiedniego "symbolu Hershey-a"

cpgptxt - wypisz tekst we wskazanym miejscu pod wskazanym kątem

void cpgptxt(float x, float y, float angle, float fjust, const char *text);

Funkcja wypisuje tekst pod kątem angle (w stopniach, odwrotnie do kierunku ruchu wskazówek zegara) do poziomej krawędzi rysunku. Parametr fjust oznacza:

  • 0.0 - miejsce (x,y) jest lewym, dolnym rogiem pierwszego znaku (justowanie do lewej)
  • 1.0 - miejsce (x,y) jest prawym, dolnym rogiem ostatniego znaku (justowanie do prawej)
  • 0.5 - miejsce (x,y) jest środkiem wypisywanego tekstu (justowanie do środka)

Inne, pośrednie wartości fjust są możliwe i poprawnie interpretowane.


cpgrnge

void cpgrnge(float x1, float x2, float *xlo, float *xhi);

(jak znajdę czas to napiszę tłumaczenie opisu tej funkcji, póki co szukaj tu)


cpgsah

void cpgsah(int fs, float angle, float barb);

Funkcja ustala styl i kształt zakończenia strzałki rysowanej funkcją cpgarro().

  • fs to styl wypełnienia zakończenia: 1 - wypełnione, 2 - tylko obwiednia, inne wartości traktowanie jak 2, domyślnie 1.
  • angle - kąt "ostrza" strzałki w stopniach, sensowne wartości to przedział od 20 do 90 stopni, domyślnie 1.
  • barb - to stosunek powierzchni "wyciętego" z tyłu trójkąta do całej główki, zero daje zakończenie bez wycięcia, 1 to zakończenie tylko z dwóch boków, jak , ładne zakończenia dają wartości z przedziału od 0.3 do 0.7, domyślnie 0.3.

cpgsch - ustala wysokość liter

void cpgsch(float size);

Ustalony tą funkcją rozmiar liter dotyczy oprócz tekstów również markerów, rysowanych np. funkcją cpgpt1(). Domyślna wysokość znaków wynosi size=1.0 i odpowiada mniej więcej 1/40 wysokości obszaru rysowania. Wysokość znaku definiowana tą funkcją jest również jednostką, definiującą rozmiary różnych innych elementów.


Predefiniowane kolory

cpgsci - ustala kolor pisaka

void cpgsci(int ci);

Funkcja ustala kolor pisaka dla rysowania kolejnych elementów. Domyślnie kolorem pisaka jest 1 (a tła 0). Pre-definiowane jest 16 kolorów przypisanych do numerów 0-15, pokazanych na obrazku obok. w pierwszej kolumnie mamy przypidany do koloru numer (ang. color index) a za nim zawartości składników R,G,B w danym kolorze. Pokazane jest też, jaki poziom szrości wygeneruje dany kolor np. na czarno-białej drukarce laserowej. Ilustracja pochodzi z oryginalnej dokumentacji biblioteki. Kliknij na obrazek by zobaczyć go w powiększeniu.



cpgscr - definiuje nowy kolor

void cpgscr(int ci, float cr, float cg, float cb);

Funkcje definiuje nowy kolor w systemie R,G,B i przypisuje go do numeru wskazanego parametrem ci. Definiowanie koloru polega na podaniu kolejno zawartości barwy czerwonej, zielonej i niebieskiej w parametrach cr,cg,cb, jako liczb z przedziału od zera do jedynki. Kolory są kodowane ośmio-bitowo, tak więc zero oznacza brak danej barwy a 1.0 wartość 255 w bajcie opisującym tę barwę.

Na urządzeniach monochromatycznych zamiast kolorów generowane są poziomy szarości wg wzoru: jasność = 0.30*R + 0.59*G + 0.11*B, tak jak w czarno-białej telewizji w USA w systemie NTSC w latach osiemdziesiątych ubiegłego wieku happy smiley


Predefiniowane kolory

cpgsfs - ustal atrybuty wypełniania obszarów

void cpgsfs(int fs);

Ustala atrybut "Fill Area Style", czyli styl wypełniania figur (koła, prostokąta itp.). Argument fs może przyjmować następujące wartości:

  • 1 - wypełnia całkowicie figurę aktualnym kolorem (domyślne)
  • 2 - rysuje tylko kontur (np. okrąg) zgodnie z aktualnymi atrybutami linii
  • 3 - zakreskowuje obszar figury równoległymi liniami
  • 4 - zakreskowuje obszar w kratkę

Wszystkie inne wartości traktowane są jako błędne i działają jak fs=2. Styl kreskowania lub kratkowania ustalamy funkcją cpgshs().

Przykłady różnych stylów wypełnienia można zobaczyć na rysunku obok, pochodzącym z oryginalnej dokumentacji.Kliknij na rysunek by go zobaczyć w powiększeniu.



cpgshs - ustal styl zakreskowania obszarów

void cpgshs(float angle, float sepn, float phase);

Funkcja ustalająca styl "kreskowania" (ang. hatching) obszarów. Znaczenie argumentów jest następujące:

  • angle - kąt w stopniach jaki tworzą linie kreskowania z pozioma krawędzią rysunku, liczone odwrotnie do kierunku ruchu wskazówek zegara
  • sepn - odstęp miedzy liniami kreskowania w procentach większego z rozmiarów: szerokość lub wysokość rysunku. Parametr ten nie powinien wynosić zero.
  • phase - liczba ułamkowa miedzy 0 a 1, przesunięcie (faza) kreskowania względem ustalonego układu o iloczyn phase · sepn. Jeżeli chcemy np. pokreskować obszar na zmianę dwoma różnymi kolorami, pierwsze kreskowanie możemy zrobić z fazą=0.0, a drugie, po zmianie koloru, z fazą=0.5.

cpgsls - ustala styl linii

void cpgsls(int ls);

Parametr ls decyduje o stylu rysowania linii:

  • ls=1 - linia ciągła
  • ls=2 - linia kreskowana (przerywana, - - - - - - - - - )
  • ls=3 - linia typu: "kropka-kreska-kropka-kreska" (·−·−·−·−·−)
  • ls=4 - linia kropkowana (········)
  • ls=5 - linia typu: "kreska, trzy kropki" ( −···−···−···−···− )

cpgslw - ustawia grubość linii

void cpgslw(int lw);

Grubość linii ustalamy parametrem lw, w jednostkach 0.005 cala (ok. 0.13 milimetra). Parametr ten musi być liczbą całkowitą z zakresu od 1 do 2001


cpgstbg - ustala kolor tła wypisywanego tekstu

void cpgstbg(int tbci);

Domyślnie wypisywany tekst nie przesłania tłem rysunku, na którym jest nadpisywany. Jeśli jednak tą funkcją ustawimy parametr tbci na zero lub większy, tekst wypisywany jest razem z prostokątem tła we wskazanym kolorze, zasłaniając rysunek. Powrót do sytuacji domyślnej (bez tła) uzyskujemy podając tbci ujemne.


void cpgslct

void cpgslct(int id);

(jak znajdę czas to napiszę tłumaczenie opisu tej funkcji, póki co szukaj tu)


cpgtext - wypisuje text na zadanej pozycji

void cpgtext(float x, float y, const char *text);

Funkcja wypisuje poziomo text rozpoczynając od miejsca (x,y). Ściśle mówiąc są to współrzędne lewego, dolnego rogu pierwszego znaku.


cpgtick - rysuje i opisuje pojedynczy "tick" na osi liczbowej

void cpgtick(float x1, float y1, float x2, float y2, float v, float tikl, float tikr, float disp, float orient, const char *str);

Funkcja rysuje i (opcjonalnie) opisuje pojedynczy "tick" na osi liczbowej wykresu. Chodzi o krótki odcinek prostopadły do osi, oznaczający konkretną wartość liczbową. Opcjonalny tekst opisu jest wypisywany wzdłuż osi i zgodnie z jej rosnącym kierunkiem (chyba, że zmodyfikuje to parametr orient), zgodnie z aktualnymi atrybutami linii i znaku.

Argumenty oznaczają:

  • (x1,y1) - początek i (x2,y2) - koniec odcinka na osi, na którym stawiamy kreskę,
  • v - liczba z przedziału (0,1), oznaczająca w jakim ułamku długości powyższego odcinka postawić kreskę, licząc od (x1,y1). Np. 0.5 oznacza: na środku.
  • tikl i tikr to długości kreski w lewo i w prawo od osi, patrząc zgodnie z jej kierunkiem.
  • disp - przesunięcie opisu w prawo od osi w jednostkach wysokości znaku. Może być ujemne, wtedy opis będzie po lewej stronie osi.
  • orient - kąt w stopniach, jaki tworzy tekst opisu z osią
  • str - tekst opisu, jeśli jest pusty, opis nie jest realizowany.



Licencja Creative Commons

Edytuj