Programmieren - alles kontrollieren 4.941 Themen, 20.712 Beiträge

Selbstähnliches Dreieck rekursiv zeichnen

Hanussen / 2 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
mulanlan Hanussen „Selbstähnliches Dreieck rekursiv zeichnen“
Optionen

Hallo Hanussen,

erstmal habe ich eine Frage, nämlich - sollst du nur das gleichseitige Dreieck oder den "Stern" zeichnen ?

Ich schreib dir gern mal eine Läsung auf, wenn du mir das beantwortet hast. Bei dem was du da stehen hast ist das prinzipielle Problem, dass du keine Bedingung für den Rekursiven aufruf hast. Dadurch ruft es sich immer wieder auf. Naja überleg nochmal und schreib obs Stern oder Dreieck sein soll :þ

Gruß, Mulan

bei Antwort benachrichtigen
Hanussen mulanlan „Hallo Hanussen, erstmal habe ich eine Frage, nämlich - sollst du nur das...“
Optionen

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

bei Antwort benachrichtigen