Nästa: Blandad information
Upp: Programpaket för grafik
Förra: Textgrafik med screen-paketet
pcgraphics är ett bibliotek med grafiska rutiner som är skrivet
på Nada. Det använder man om
man vill öppna ett grafiskt fönster på skärmen som programmet kan rita och
skriva i. Nedan beskrivs hur man anropar funktionerna och procedurerna
som ingår i biblioteket.
Följande variabeldeklarationer antas då vara gjorda:
VAR x,y,x1,y1,x2,y2,r,flag: Integer;
ch: Char;
s: String;
Det finns en osynlig penna i grafikfönstret. Den har x- och y-koordinater
samt en viss tjocklek.
Origo är i övre vänstra hörnet i grafikfönstret. x-koordinaterna ökar åt
höger och y-koordinaterna nedåt.
- [start_graphics(w,h);]
Skapa och visa ett grafikfönster med bredd w och höjd h (i bildpunkter).
- [end_graphics;]
Ta bort grafikfönstret.
- [clear_graphics;]
Sudda allt som är ritat i grafikfönstret.
- [pen_size(size);]
Sätt pennans tjocklek till size (bildpunkter).
- [move_to(x,y);]
Flytta pennan till (x,y).
- [line_to(x,y);]
Rita en linje från pennans aktuella position till (x,y).
- [draw_point(x,y);]
Rita en punkt vid (x,y).
- [erase_point(x,y);]
Sudda en punkt vid (x,y).
- [draw_line(x1,y1, x2,y2);]
Rita en linje från (x1,y1) till (x2,y2).
- [erase_line(x1,y1, x2,y2);]
Sudda en linje från (x1,y1) till (x2,y2).
- [draw_circle(x,y,r);]
Rita en cirkel med radien r och centrum i (x,y).
- [erase_circle(x,y,r);]
Sudda en cirkel med radien r och centrum i (x,y).
- [draw_char(x,y,ch);]
Rita tecknet ch vid (x,y).
- [erase_char(x,y,ch);]
Sudda tecknet ch vid (x,y).
- [draw_string(x,y,s);]
Rita strängen s vid (x,y).
- [erase_string(x,y,s);]
Sudda strängen s vid (x,y).
- [wait_for_click(x,y);]
Vänta tills användaren klickar med musen och hämta koordinaterna
för klicket i variablerna x och y.
- [mouse_position(flag,x,y);]
Returnera musens position. Båda koordinaterna är -1 om musen är utanför
grafikfönstret. Parametern flag sätts till 1 om någon musknapp är nertryckt
och till 0 annars.
- [ch:=wait_for_key;]
Vänta tills användaren trycker ner en tangent på tangentbordet och returnera
det tecknet. Användaren behöver inte trycka på retur efter tecknet, men
grafikfönstret måste vara det aktiva fönstret under inmatningen.
- [ch:=last_key;]
Returnera det senaste tecknet som användaren skrev (sedan förra anropet av
något av last_key, wait_for_key eller wait_for_click).
Om ingen tangent tryckts ner returneras Chr(0).
Varje program som använder pcgraphics-rutinerna måste inkludera filen
/usr/local/include/pc/pcgraphics.h som i följande exempel:
PROGRAM testgraphics;
#include '/usr/local/include/pc/pcgraphics.h'
VAR x,y : Integer;
BEGIN
start_graphics(200,150);
move_to(10,10);
line_to(150,100);
draw_circle(50, 50, 40);
draw_string(30, 30, 'Klicka någonstans i rutan!');
wait_for_click(x,y);
Writeln('Du klickade i position (', x:1, ',', y:1, ')');
end_graphics;
END.
När man kompilerar ett program som använder pcgraphics-rutinerna måste
man länka med biblioteken pcgraphics och X11 (i just
den ordningen). Detta gör man
med väljaren -l till run-kommandot. Ovanstående testprogram skulle
exempelvis kompileras med kommandot
run testgraphics.p -lpcgraphics -lX11
Nästa: Blandad information
Upp: Programpaket för grafik
Förra: Textgrafik med screen-paketet
Viggo Kann
Fri Aug 7 00:55:14 MET DST 1998