Hallo zusammen,
ich muss für die Schule mit Hilfe einer Procedur welche Rekursiv aufgerufen wird, ein selbstähnliches Dreieck zeichnen.
Im Web habe ich ein Bild gefunden :
http://www.jvogel.ch/chaos/skizze.gif
Seit 4 Tagen versuche ich shcon das hinzubekommen, leider klappts irgendwie nicht. Zum Zeichnen unter Turbo Pascal nehmen wir so eine Art Turtal Grafik mit folgenden Befehlen :
-----------------------------------------------------------------
Strecke(l : real) : Zeichnet Strecke
dreh(w : real) : dreh den grafikzeiger um den angegeben winkel. Bei negativen Zahlen mit dem Uhrzeiger und bei positiven gegen den uhrzeiger
grfrichtung := x : real : setzt den Grafikcursor auf eine bestimmte richtung. (variale steht nur global zur verfügung)
getx,gety : speichert momentanige Position vom Grafikcursor)
------------------------------------------------------------------
Momentan bin ich so weit :
procedure dreieck(l: real);
var xa,ya,xb,yb,xc,yc : integer;
g : real;
begin
if (l>1){ and (o>=1)} then
begin
strecke(l/3);
xa := getx; {Punkt an dem neues Dreieck beginnt}
ya := gety;
strecke(l/3); {restliche kathendenl„nge fertig}
xb := getx;
yb := gety;
strecke(l/3);
xc := getx;
yc := gety;
l:=l/3;
moveto(xa,ya);
g := grfrichtung;
dreh(-60);
dreieck(l);
dreh(120);
strecke(l);
end;
end;
-----------------------------------------------------------------
Ich hoffe jemand versteht mein Problem und kann mir helfen, denn alleine schaffe ich das einfach nicht.
Danke schon mal im voraus. Gruß Hanussen
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
Also die bedingung für den Rekursiven aufruf soll ja sein, l > 1, daher solange die länge im sichtbaren berei liegt soll der dreiecke zeichnen. Das Bild hab ich nur weil ich kein besseres gefunden hab.
Es geht um ein gleichseitiges Dreieck. An jeder der 3 Katheden soll nach einem drittel der länge ein weiteres Dreieck beginnen dessen Seitenlänge l/3 ist, an dessen katheden wieder das selbe spiel.
Ich hab das einfach nicht hinbekommen.
Aber eine von den 3 Seiten reicht auch, die kann ich ja im Notfall einfach dreimal zeichnen lassen :-)).
Danke schon mal im voraus.
Gruß Hanussen