Entwickler-Ecke
Multimedia / Grafik - Wie macht man die Koch'sche Schneeflocke aus der Kochkurve ?
Freeman - Sa 21.05.05 18:58
Titel: Wie macht man die Koch'sche Schneeflocke aus der Kochkurve ?
Hi Leute
Also mein problem is folgendes :
Ich hab bereits die Kochkurve als programm hingekriegt und die sieht bei mir wie folgt aus und funktioniert auch gut.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Kochkurve(Nummer: integer; Strichlaenge: real); begin if (Nummer=1) or (Nummer<1) then Turtle1.draw(Strichlaenge)
else begin Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(60); Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(-120); Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(60); Kochkurve(Nummer-1, Strichlaenge/3);
end; end; |
kann mir jemand sagen wie ich daraus jetzt die Koch'sche Schneeflocke hinkrieg....ich weiß zwar dass man den Initiator der ja hier ne Strecke is mit nem dreieck ersetzen muss...aber wenn ich des versuch kommt nur müll raus....kann mir da vielleicht jemand helfen und sagen was ich genau ändern muss ??
Greetz
Freeman
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.
AXMD - Sa 21.05.05 19:10
Wo hakts denn genau? Zeig mal den Code, der nicht funktioniert - so wird dir eher geholfen als ohne Code.
AXMD
BenBE - Sa 21.05.05 19:19
REKURSION
Solange dein LEvel der Rekursion > 0 ist, einfach anstatt der Striche deine Kochkurven-Funktion aufrufen und dabei die Streckenlänge verkleinern.
Freeman - Sa 21.05.05 19:33
Sorry aber des hab ich jetzt net ganz gerafft....wenn ich des mach hab ich doch nur die Kochkurve
also so
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Kochkurve(Nummer: integer; Strichlaenge: real); begin if nummer>0 then begin
Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(60); Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(-120); Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(60); Kochkurve(Nummer-1, Strichlaenge/3); end
else Turtle1.draw(Strichlaenge) end; |
aber da hab ich doch noch keine Schneeflocke ??
Moderiert von
AXMD: Code- durch Delphi-Tags ersetzt.
BenBE - Sa 21.05.05 19:47
Bitte besorge Dir zum Programmieren die Standard-Software Brain 1.0, die es in jeder guten pädagogischen Einrichtung als Basisausstattung gibt und überlege dann, warum nichts gezeichnet wird.
Vielleicht kommst Du dann darauf, dass bei Nummer=0 noch ein paar Linien gezeichnet werden müssten.
Freeman - Sa 21.05.05 19:57
Hmm,meinste net , ich hätt schon alles ausprobiert was mir einfällt?.....is nun ma net jeder en Super Programmierass.....frag mich nur, wofür frag ich hier überhaupt nach hilfe wenn die antwort letztendlich eh is " find es selbst raus" .....
BenBE - Sa 21.05.05 20:13
Die restlichen Seiten erhälst Du durch drehen des Zeichenstifts um -60°.
Das Zeichnen der Kochkurve + Drehenum -60 Grad insgesamt 6 mal ausführen.
Freeman - Sa 21.05.05 20:26
Ahh ok Danke.....jetzt funktionierts....hab ne neue prozedur gemacht und dort dann die Prozedur der Kochkurve wieder aufgerufen und wiederholt mit dem Turn.....hab allerdings nur 3 mal wiederholt und um -120° gedreht....dann siehts schöner aus *gg*..........naja ,mein fehler war die ganze Zeit....dass ich es alles in der Kochkurven Prozedur machen wollte und des hat net so ganz geklappt. Also so funktionierts jetzt :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TForm1.Kochkurve(Nummer: integer; Strichlaenge: real); begin if (Nummer=1) or (Nummer<1) then Turtle1.draw(Strichlaenge)
else begin Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(60); Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(-120); Kochkurve(Nummer-1, Strichlaenge/3); Turtle1.Turn(60); Kochkurve(Nummer-1, Strichlaenge/3); end; end;
procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin for i:=1 to 3 do begin kochkurve(StrToInt(Edit1.text),100); turtle1.turn(-120); end; end; |
thx for help
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!