Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4709 Wohnort: ~/
|
Verfasst am: 06.12.2008, 19:44 Titel: |
|
|
Das wäre so etwas, genau. Auch z. B. die Koch-Kurve, die von ihrem Aussehen her einer Schneeflocke ähnelt. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
GRaf
Anmeldungsdatum: 04.12.2008 Beiträge: 23
|
Verfasst am: 06.12.2008, 20:35 Titel: |
|
|
und was müsste ich an meinem programm verändern damit es ein fraktal ist?
Eig ist es doch ungefähr wie beim Baum
Der Baum geht erst nach oben,dann dreht sich der winkel und der nächste wird drann gezeichent.
Und bei mir
Ist eine Schneeflocke, dann dreht sich der winkel und eine Schneeflocke wird 50cm dadrunter gezeichent. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4709 Wohnort: ~/
|
Verfasst am: 07.12.2008, 10:35 Titel: |
|
|
Zitat: | Und bei mir
Ist eine Schneeflocke, dann dreht sich der winkel und eine Schneeflocke wird 50cm dadrunter gezeichent. |
Wenn die neu gezeichnete Schneeflocke nicht Teil der ursprünglichen Schneelflocke ist, dann ist es kein Fraktal, sondern eine Symmetrie. Für ein Fraktal muss sich die Schneeflocke aus anderen Schneeflocken zusammensetzen, die sich wiederum aus Schneeflocken zusammensetzen, die sich wiederum ...
Siehe Kochkurve.
Bei dem Baum (zumindest wie ich ihn mir deiner Beschreibung nach vorstelle) hast du genau diesen Fall: Der gedrehte Ast ist eben ein Ast, also ein Teil des Baumes, und besitzt wieder einen Ast, der wiederum usw. Wenn du dagegen nur irgendwo einen anderen gedrehten Baum hinzeichnest, dann ist das ein neuer Baum (der ja ohne Äste einfach nur aus einer Strecke besteht). _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
GRaf
Anmeldungsdatum: 04.12.2008 Beiträge: 23
|
Verfasst am: 07.12.2008, 12:28 Titel: |
|
|
also bei meiner schneeflocke zeichne ich einfach eine neue,also ist es doch ein teil der ursprünglichen oder nicht? Oder soll ich die danach ein bisschen vergrößern? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4709 Wohnort: ~/
|
Verfasst am: 07.12.2008, 16:00 Titel: |
|
|
k. A. ob du das richtige meinst; dazu müsste ich den Quellcode sehen (ich kann wie gesagt die binärverschlüsselte Speicherung nicht lesen). _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
GRaf
Anmeldungsdatum: 04.12.2008 Beiträge: 23
|
Verfasst am: 07.12.2008, 18:11 Titel: |
|
|
muss ich da was bei dem programm verändern,damit du das lesen kannst?
Ich erklärs aber nochmal
Ich geb 10 ein dann kommen oben 10 Schneeflocken nebeneinander.
Dann geb ich wieder 10 ein dann zeichnet qb dadrunter 10 neue und dadrunter noch 10 neue und immer so weiter, bis nach unten.
http://uploaded.to/?id=zxo06t |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 957 Wohnort: Austria
|
Verfasst am: 07.12.2008, 18:40 Titel: |
|
|
@nemored: Die Datei kann mit QBasic 7.1 PDS ohne Probleme geöffnet werden. Mit QBasic 4.5, 1.1, o.ä, hingegen nicht, da die Datei im Binärformat gespeichert ist.
@GRaf: Es is möglicherweise besser, wenn du die Datei im Textformat abspeicherst. Dann kann sie von jedem gelesen werden. Wähle dazu unter QB7.1 PDS "File"-"Save As..." und dann in der Box "Format" die Option "Text - Readable by other programs" und gib den Dateinamen an, unter dem du die Datei abspeichern willst.
(Alternativ kannst du auch hier im Forum den Code einfügen, wenn er nicht zu lang ist.) _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 07.12.2008, 19:03 Titel: |
|
|
@St_W:
Das ist nemored wohl bewusst, deswegen weißt er auch extra darauf hin, dass er die binär gespeicherten QB-Sourcen nicht lesen kann; mit der indirekten Forderung das ganze doch mal als reinen Text zu speichern. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
GRaf
Anmeldungsdatum: 04.12.2008 Beiträge: 23
|
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 957 Wohnort: Austria
|
Verfasst am: 07.12.2008, 21:47 Titel: |
|
|
[ot]
Mao hat Folgendes geschrieben: | er die binär gespeicherten QB-Sourcen nicht lesen kann |
Also das kann ich mir nicht vorstellen.
QB 7.1 PDS kann man kostenfrei vom Internet herunterladen und es läuft unter DOS, Windows, MacOS, OS/2, FreeBSD, RiscOS, BeOS, Linux - sprich: jedem verbreiteten Betriebssystem (mithilfe der DosBox). Und am Wissen wird es auch nicht scheitern, also ist die Chance, dass man die Datei nicht öffnen kann verschwindend klein.
[/ot] _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4709 Wohnort: ~/
|
Verfasst am: 07.12.2008, 22:12 Titel: |
|
|
Tut mir leid, ich finde in deinem Programm keine Rekursion. Der Programmablauf scheint mir folgender zu sein:
vorbereitung -> schneee -> (schneeflocke -> schneevor) (beide letzten evtl. mehrmals hintereinander)
secvor -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvora -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorb -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorc -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvord -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvore -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorf -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorg -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorh -> schneee -> (schneeflocke -> schneevor) (s. o.)
Keine einzige Funktion, die sich selbst aufruft und daher auch keine Rekursion. Ich vermute mal, dass es dann auch kein Fraktal ist, aber ich bekomme bei der Ausführung nichts angezeigt; ist vielleicht irgendwas nicht zu FreeBASIC kompatibel.
@ST_W: Schon mal auf den Gedanken gekommen, dass ich nicht erst ein passendes Programm suchen und installieren möchte, um eine (auch) an mich gerichtete Frage beantworten zu können?  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
GRaf
Anmeldungsdatum: 04.12.2008 Beiträge: 23
|
Verfasst am: 07.12.2008, 22:23 Titel: |
|
|
hää also recursion heißt doch, wenn man in einer sub ne andere aufruft oder nicht? So hab ich das verstanden.
Wie soll ich das den ändern, damit es deiner meinung nach rekursiv ist? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4709 Wohnort: ~/
|
Verfasst am: 07.12.2008, 23:17 Titel: |
|
|
Rekursion (siehe Link oben) ist eine Funktion, die sich selbst aufruft. Ein klassisches Beispiel wäre die Berechnung der Fakultät (die leider sehr schnell an die Grenzen der Variablengröße stößt ).
Code: | FUNCTION fakultaet(n)
IF n = 1 THEN RETURN n
RETURN n * fakultaet(n-1)
END FUNCTION |
Die Funktion ruft sich so lange immer wieder selbst auf, bis sie das Ergebnis ermittelt hat.
Ich fürchte, du musst dein Programm völlig anders aufbauen. Ich gebe dir mal ein Beispiel für die Kochkurve in Pseudocode:
Code: | sub kochkurve(startX, startY, endeX, endeY, verschachtelungsstufe)
wenn obersteVerschachtelungsstufe = erreicht dann
zeichne strecke von start zu ende
sonst
punkt1 = punkt auf 1/3 der Strecke von start bis ende
punkt2 = punkt auf 2/3 der Strecke von start bis ende
spitze = dritter Punkt des gleichseitigen Dreiecks punkt1-punkt2-spitze
' hier kommt die Rekursion ins Spiel
kochkurve(startX, startY, punkt1X, punkt1Y, verschachtelungsstufe-1)
kochkurve(punkt1X, punkt1Y, spitzeX, spitzeY, verschachtelungsstufe-1)
kochkurve(spitzeX, spitzeY, punkt2X, punkt2Y, verschachtelungsstufe-1)
kochkurve(punkt2X, punkt2Y, endeX, endeY, verschachtelungsstufe-1)
ende wenn
ende sub |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
GRaf
Anmeldungsdatum: 04.12.2008 Beiträge: 23
|
Verfasst am: 08.12.2008, 19:03 Titel: |
|
|
Ich habs rekursiv
http://uploaded.to/?id=0ji7fp
Brauch nur noch Hilfe wieder beim fallen von den Schneeflocke ich muss ja unter jede flocke noch eine flocke. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4709 Wohnort: ~/
|
Verfasst am: 08.12.2008, 20:01 Titel: |
|
|
Mal so als Warnung:
Code: | CALL eingabe(generation!)
SUB eingabe (generation!)
PRINT "gib bitte die schneeflocken an"
INPUT generation
END SUB |
wird nicht funktionieren, weil die Variable generation nur innerhalb der SUB gültig ist. Will heißen: Du kannst damit schon einen Wert eingeben, aber wenn du die SUB verlässt oder während du eine andere aufrufst, ist er wieder weg. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 957 Wohnort: Austria
|
Verfasst am: 08.12.2008, 20:10 Titel: |
|
|
@nemored: Nein, das dürfte nicht so sein, denn:
- Beim Aufrufen (CALL) wird die Variable "generation" als SINGLE angelegt
- Die Adresse der Variable wird an die Sub übergeben (By Reference!!)
- In der Sub wird an der Adresse der Variable der neue Wert gespeichert
- Rücksprung aus der Sub
@GRaf: Ich kann keine Rekursion in deinem Programm finden. Welche Sub ist da rekursiv? _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4709 Wohnort: ~/
|
Verfasst am: 08.12.2008, 20:19 Titel: |
|
|
Achso, ist BYREF Standard? Dann sorry, meine QB-Zeiten sind wohl inzwischen doch schon zu lange her.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
GRaf
Anmeldungsdatum: 04.12.2008 Beiträge: 23
|
Verfasst am: 08.12.2008, 20:40 Titel: |
|
|
Ich krieg das einfach nicht hin...
Muss morgen meine Arbeit abgeben und schaff es einfach nicht.
Mein einziges Problem ist , wenn ich die Schneeflocken rekursiv machen will, dann sagt er immer "Außerhalb des Stapelsbereich". Nur wie krieg ich das jetzt hin?
EDIT
Habs
FERTIG !!!
Ich denke jetzt ist es recursiv und da es rekursiv ist , denke ich , dass es auch ein fraktal ist.
http://uploaded.to/?id=wi996a Hoffe es ist rekursiv   |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 09.12.2008, 12:34 Titel: |
|
|
Ja, logisch: Wenn Du eine Sub rekursiv unendlich oft aufrufst, ist irgendwann der Stapel voll.
Wie wäre es, wenn Du ein Array für die Schneeflocken anlegst und dann jede Schneeflocke per Index zählst und nacheinander berechnen läßt. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
|