Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Algorithmus PeanoKurve
Centron88 - Fr 29.10.04 21:16
Titel: Algorithmus PeanoKurve
Hallo Leute
Ich bin blutiger Anfänger und habe als Aufgabe die Darstellung der PeanoKurve als rukursive Darstellung. Wie die Kurve ansich aussieht und funktioniert ist eigentlich klar. Unklar ist mir, wie sage ich Delphi das es die Kurve nach meinen Vorstellungen zeichnen soll.
Ich habe ein Quadrat welches sich in 9 Quadrate teilen muss um dann ab der Mitte von Quadrat 1 bis hin zu Quadrat 9 die Kurve zu zeichnen. Wie bringe ich Delphi nun diese Teilung bei. Falls das irgendwie unklar ist einfach mal unter
http://wwwzenger.informatik.tu-muenchen.de/lehre/vorlesungen/algowiss/ss04/projekte/peano.html nachschauen.
Vielen Dank
NeWsOfTzzz - Fr 29.10.04 21:40
Ich glaub fast dir wird keiner helfen..
Centron88 - Fr 29.10.04 21:51
Titel: ???
Warum wird keiner helfen?? Wie müssen Fragen gestaltet sein?? Danke für deinen Tipp..
NeWsOfTzzz - Fr 29.10.04 21:56
Ganz einfach.. glaubst du es arbeitet sich jemand für dich in so ein sauschweres thema ein? ^^
.Chef - Fr 29.10.04 22:53
Einarbeiten nicht, ich kannte es schon. Allerdings nur in der Theorie. In der Praxis nimmst du ein 400x400 großes Image, und führst dann diesen Code aus:
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:
| const init = 'X'; genX = 'XFYFX+F+YFXFY-F-XFYFX'; genY = 'YFXFY-F-XFYFX+F+YFXFY'; var dist, oldx, oldy : Real; dep : Byte; dirx, diry : ShortInt; procedure Peano(com : string;Level : Integer); var i : Integer; a : ShortInt; x, y : Real; begin for i:=1 to Length(com) do case com[i] of 'X' : if Level > 0 then Peano(genX,Level-1); 'Y' : if Level > 0 then Peano(genY,Level-1); 'F' : begin x:=oldx+dist*dirx; y:=oldy+dist*diry; Image1.Canvas.LineTo(Round(x),Round(y)); oldx:=x; oldy:=y; end; '+' : begin a:=dirx;dirx:=diry;diry:=-a;end; '-' : begin a:=diry;diry:=dirx;dirx:=-a;end; end; end; begin dirx:=1; diry:=0; dep:=4; oldx:=0; oldy:=400; dist:=400/(exp(dep*ln(3))-1); Image1.Canvas.MoveTo(0,400); Peano(init,dep); end; |
Es hat mich grad mal interessiert ... ;-)
Gruß,
Jörg
NeWsOfTzzz - Fr 29.10.04 23:17
Na denn hat der Threadersteller Glück gehabt :)
BenBE - Fr 29.10.04 23:23
Bleibt nur noch die Frage: Was bringt einem das, wenn man so'ne Kurve zeichnen kann?
.Chef - Fr 29.10.04 23:27
Das ist wie die Frage nach dem Sinn von Mathematik. :eyes:
BenBE - Fr 29.10.04 23:41
Wobei man in Mathe wenigstens noch eine Lebensnotwendigkeit erkennen könnte (wenn man wirklich wöllte). Das fällt mir bei Peano-Kurven schon wesentlich schwieriger, auch obwohl ich Mathe-Begeistert bin.
.Chef - Fr 29.10.04 23:43
Also sach ma ... wasn los? Findest du Fraktale nicht faszinierend? Die Peano-Kurve ist nämlich ein solches ...
BenBE - Sa 30.10.04 00:00
Wenn du so sagst ...
Ich find aber immernoch, dass so'n Mandelbrot besser aussieht und sogar schmeckt.
Centron88 - Sa 30.10.04 00:03
Titel: DANKE
Hallo Leute
Echt spitze von euch so weit zu gehen. Vielen dank an dieser Stelle. Eigentlich liegt das Problem aber an anderer Stelle. Ich tue mich recht schwer mit dem umsetzen meiner Gedanken in Delphi. Ich werde nun mit deinem Code etwas rumspielen un versuchen zu verstehen wie du was machst.
PS: PeanoKurven sind wegen ihrer Flächenfüllenden Eigenschaften so interessant;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 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!