HSG

Aktuelle Seite: HSG/Fächer/Informatik/Prolog


Turtle für Prolog
XPCE - User Guide

Grafik-Beispiel

strecke(3,4,17,4).
strecke(17,4,17,16).
strecke(3,16,17,16).
strecke(3,4,3,16).
strecke(1,2,10,2).
strecke(10,2,10,12).
strecke(1,12,10,12).
strecke(1,2,1,12).

zeichne1:-turtle_init,strecke(X1,Y1,X2,Y2),F is 20,H is 400,
          X1g is F*X1,Y1g is H-F*Y1,X2g is F*X2,Y2g is H-F*Y2,
          turtle_moveto(X1g,Y1g),turtle_drawto(X2g,Y2g),fail.

ginit:-new(@graf,picture('Grafik',size(600,400))),send(@graf,open).
zeichne2:-ginit,strecke(X1,Y1,X2,Y2),F is 20,H is 400,
          X1g is F*X1,Y1g is H-F*Y1,X2g is F*X2,Y2g is H-F*Y2,
          send(@graf,display,new(_,line(X1g,Y1g,X2g,Y2g))),fail.
zeichne1 benutzt die turtle-Grafik von Herrn Röhner, zeichne2 (nach dem Vorbild der turtle-Grafik) zeichnet Linien direkt, muss aber ginit benutzen. Zur Verwendung des Prädikats fail, siehe Details zum Backtracking.
Nach Aufruf von zeichne2 erhält man folgendes Fenster:

grafik

weiteres Beispiel

Baum des Pythagoras