Naravno, koristimo biblioteku plplot. Pored nje, trebat ~te nam i
math biblioteka. Program treba zapo~ceti ovako:
#include <math.h>
#include <plplot/plplot.h>
#define st *M_PI/180
double x=0,y=0,fi=0;
void go(double d){
Postoje ~cetiri globalne varijable, x i y ozna~cavaju trenutni polo~zaj kursora, dok fi ozna~cava njegovu orijentaciju (na primjer, fi=0 zna~ci desno, fi=M_PI/2 zna~ci gore itd.).
Trebate prvo napisati funkciju "go",
koja prima jedan realni argument, d, i pomi~ce kursor u
smjeru odre~denom s fi, od to~cke (x,y) za d jedinic~a. Pri tom pomicanju treba ostaviti trag (nacrtati
du~zinu od po~cetnog do krajnjeg polo~zaja, recimo naredbom pljoin
). Funkcija treba
promijeniti globalne varijable x i y tako da
pokazuju na novi polo~zaj kursora.
Pomo~tu te funkcije, i pove~tavanja/smanjivanja varijable fi, mo~zete prili~cno jednostavno crtati slike. Na primjer, ako ~zelite napraviti ovakvu spiralu:
n=10
n=20
, mo~zete to napraviti ovako:
int main() {
int i, n;
double h = 1;
plinit();
plenv(0.0, 1.0, 0.0, 1.0, 1, -2);
x=y=0;
printf("n=");scanf("%d",&n);
for (i=0;i<n;++i) {
go(h);
fi += 90 st;
h *= 0.9;
}
plend();
return 0;
}
Za 2 boda, trebate samo napisati funkciju go tako da gornji program (za spiralu) proradi.
Za 3 boda, trebate nacrtati n-tu iteraciju Kochove 3-krivulje: mo~zete pogledati prvih nekoliko iteracij~a.
Za 4 boda, nacrtajte Kochovu pahuljicu s tom linijom (trokut kojem je svaki brid Kochova 3-krivulja).
Za 5 bodova, trebate omogu~titi korisniku izbor izme~du Kochove 3-krivulje i Zmajeve krivulje. Zmajeva krivulja definirana je simultanom rekurzijom: