Autor Beitrag
Freeman
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Sa 21.05.05 18:58 
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.



ausblenden 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=1or (Nummer<1then 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 user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 21.05.05 19:19 
Suche in: Delphi-Forum, Delphi-Library REKURSION

Solange dein LEvel der Rekursion > 0 ist, einfach anstatt der Striche deine Kochkurven-Funktion aufrufen und dabei die Streckenlänge verkleinern.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Freeman Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ausblenden 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 user profile iconAXMD: Code- durch Delphi-Tags ersetzt.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Freeman Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Freeman Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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 :


ausblenden 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=1or (Nummer<1then 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