Autor Beitrag
ultra146
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 30.09.09 16:52 
Leute ich hab ein dringendes Problem ich brauch eure Hilfe beim Schreiben meines Programmcodes, es handelt sich um Delphi:

ausblenden volle Höhe 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:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
unit Kochkurve;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    PB1: TPaintBox;
    BitBtn1: TBitBtn;
    Edit1: TEdit;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Kochkurve (xAnfang, yAnfang, xEnde, yEnde, Stufe: integer);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);
var Tiefe : word;
begin
     Pb1.Refresh;
     if (Edit1.Text= ''then Edit1.Text := '1';
     if (strtoint (Edit1.text)>0then
     begin
         Tiefe := strtoint (Edit1.text);

         Kochkurve (400,250,100,250, Tiefe);
         Kochkurve (400,250,400,150, Tiefe);
         Kochkurve (400,150,100,150, Tiefe);
         Kochkurve (100,150,100,250, Tiefe);

     end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var tiefe: word;

begin
     Pb1.Refresh;
     if (Edit1.Text= ''then Edit1.Text := '1';
     if (strtoint (Edit1.text)>0then
     begin
         Tiefe := strtoint (Edit1.text);
         Kochkurve (60,100,260,100, Tiefe);
              end;
end;

procedure TForm1.Kochkurve (xAnfang, yAnfang, xEnde, yEnde, Stufe: integer);
   var
      x1,y1,x2,y2,x3,y3,x4,y4 : integer;
   begin
      with Pb1.Canvas do
      begin
          Moveto (xAnfang,yAnfang);
          if Stufe > 1 then          //Abbruchbedingung (Stufe < 1)
          begin


             x1 := (2* xAnfang) div 3+ xEnde div 3;
             y1 := (2* yAnfang) div 3+ yEnde div 3;

             x2 := (xAnfang + xEnde) div 2 + round (Sqrt(3)/6*(yEnde-yAnfang));
             y2 := (yAnfang + yEnde) div 2 + round (Sqrt(3)/6*(xAnfang-xEnde));

             x3 := xAnfang div 3 + (2 * xEnde) div 3;
             y3 := yAnfang div 3 + (2 * yEnde) div 3;

             x4 := (2* x3) div 3 + x3 div 3;
             y4 := (2* y3) div 3 + y3 div 3;

             Kochkurve (xAnfang,yAnfang,x1,y1, Stufe -1);    {---Rekursion---}
             Kochkurve (x1,y1,x2,y2, Stufe -1);              {---------------}
             Kochkurve (x2,y2,x3,y3, Stufe -1);              {---------------}
             Kochkurve (x3,y3,x4,y4, Stufe -1);              {---------------}
             Kochkurve (x4,y4,xEnde,yEnde, Stufe -1);        {---------------}

          end
          else
             LineTo (xEnde,yEnde)     //Anweisung 1 (Zeichnen)
      end;
      end;
end.


So es geht mir jetzt darum dass einfach die neuen Punkte x1,y1,x2 usw. berechnet werden müssen die in der "Procedure Kochkurve" stehen, damit da ein vernünftiges Fraktal rauskommt. Zurzeit sieht das einfach nicht gut aus kopiert den code bitte mal in euer delphi und guckt mal wie ihr die Punkte berechnen würdet denn ich habe keine Ahnung. Wenn alles nichts hilft kopiert mir bitte einen Delphi Code für ein Fraktal hier rein also sowas wie das was inner "Procedure Kochkurve" steht, irgendeins das einigermaßen gut aussieht;)
Danke Leute

Moderiert von user profile iconGausi: Color- durch Delphi-Tags ersetzt
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Mi 30.09.09 18:42 
Tja, deine Hausaufgaben wird hier bestimmt niemand machen. :roll:
ultra146 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 30.09.09 19:02 
Leute was soll ich denn machen ich hab das soweit wie das jetzt is und ich komm einfach nicht weiter ich kann die punkte nicht berechnen ....
Tryer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: Mi 30.09.09 19:13 
user profile iconultra146 hat folgendes geschrieben Zum zitierten Posting springen:
kann die punkte nicht berechnen

Eine mathematische Herleitung warum die Punkte nicht berechnet werden können wird bestimmt auch als korrekte Bearbeitung gewertet ;)
Fiete
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 617
Erhaltene Danke: 364

W7
Delphi 6 pro
BeitragVerfasst: Do 01.10.09 11:45 
Moin ultra146,
versuchs mal hier [url=www.delphi-forum.de/...p;highlight=fraktal]Fraktal[/url]
Gruß
Fiete

_________________
Fietes Gesetz: use your brain (THINK)