MiniBCC #6

Übersicht Sonstiges Projekte

Neue Antwort erstellen

Ana

Betreff: MiniBCC #6

BeitragFr, Jan 11, 2013 3:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Herzlich willkommen zum MiniBCC #6
und entschuldigt bitte, dass ich es erst jetzt schaffe.

Dieses Mal bekommt ihr die Aufgabe euch mit Fraktalen zu beschäftigen, genau genommen mit

Drachenkurven

user posted image
Quelle Wikipedia

Programmiert die größten, schnellsten und schönsten Drachenkurven die je in BB, BMax oder Monkey geschrieben wurden Wink

Als Regelwerk für das Erstellen von Drachenkurven gilt der Wikipediatext

Ihr dürft keine Grafiken, Sounds oder externen Datein verwenden!

Auch dieses mal gilt

user posted image
9KiB = 9216 Bytes Code

Abgabeschluss ist am 13.1.13 um 23.59
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

BlitzMoritz

BeitragFr, Jan 11, 2013 22:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei maximalem Detail, also nur 1 Pixel pro Schritt, ist innerhalb einer 1920x1200 Auflösung bei der 19.Ordnung Schluss, alles weitere würde weit über den Bildschirm reichen. Die Ordnung richtet sich bei mir daher flexibel nach der Auflösung.
Wahrscheinlich geht's schneller, aber egal: mein Drachentier faucht schon 'mal ...
Edit: Screenshot und alte Exe wurden entfernt: jetzt gibt's was Besseres, siehe unten...
  • Zuletzt bearbeitet von BlitzMoritz am So, Jan 13, 2013 19:18, insgesamt 4-mal bearbeitet

Ana

BeitragSa, Jan 12, 2013 9:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr schön =)
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

BlitzMoritz

BeitragSa, Jan 12, 2013 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, aber ich habe noch einiges geändert und bin jetzt selbst ganz zufrieden: Geschwindigkeit und Farbgebung wurden verbessert und eine animierte Reise durch eine Drachenkurve 20.Ordnung angefügt, welche unabhängig von der Bildschirmauflösung realisiert wird und sich als 2048 x 1707-Screenshot speichern lässt. Viel Spaß auf der Reise durch den Regenbogen-Drachen. Very Happy (Edit: neue Exe + Code siehe unten!)
Hier eine auf 25% verkleinerte Vorschau:
user posted image
  • Zuletzt bearbeitet von BlitzMoritz am So, Jan 13, 2013 19:35, insgesamt 3-mal bearbeitet
 

LordCoder

BeitragSo, Jan 13, 2013 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi zusammen,
Ich mag Fraktale ziemlich gut.

Hier mein Bild mit relativ zufälliger Farbgebung. 20. Stufe, aber das geht eigentlich weit über die genauigkeit hinaus, die man sieht.
user posted image
3. Platz BCC #60

BlitzMoritz

BeitragSo, Jan 13, 2013 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
@LordCoder: Wenn man für einen einzelnen Schritt minimal 1 Pixel veranschlagt, hat dein Drache nicht die 20.Ordnung. "Kleinere Schritte" machen insofern keinen Sinn, da sie nicht darstellbar und nicht zu erkennen sind aufgrund der Selbstähnlichkeit des Fraktals. Eine trotzdem höhere Ordnung hätte nur theoretischen Wert bzw. sie müsste allein aus dem Code herausgelesen werden.
Hier mein fertiges Downloadpaket aus leicht revidiertem Code + Exe, ein 2048x1707 grosses Abbild wird automatisch gespeichert, viel Vergnügen.
  • Zuletzt bearbeitet von BlitzMoritz am So, Jan 13, 2013 20:31, insgesamt einmal bearbeitet

Thunder

BeitragSo, Jan 13, 2013 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Kenne mich zwar mit Fraktalen nicht aus, habe aber trotzdem was programmiert! Very Happy

Hier ist das Ergebnis (stark runterkomprimiert von 8194x6828 Pixel auf 2048x1707 und statt PNG JPG):
user posted image

Die Sache mit den Ordnungen scheint mir noch nicht ganz klar zu sein, denn, als ich versucht habe BlitzMoritz' Kurve zu erhalten, musste ich bei meinem Code die Ordnung 25 verwenden... :S

So...

Source + Windows + Linux (~750 KB): https://www.blitzforum.de/upload/file.php?id=12187

Das Programm erstellt standardmäßig die Kurve 20. Ordnung. Wollt ihr die Ordnung ändern, dann die Zahl als ersten Parameter beim Ausführen übergeben oder Code verändern und neukompilieren. Mit Enter könnt ihr dann speichern (ist aber immer derselbe Dateiname!). Es wird nicht der Bildschirminhalt, sondern die ganze Kurve gespeichert. Während des Speicherns kann das Programm schon Mal einfrieren.
Bekannte Fehler: Manche Ordnungen gehen interessanterweise nicht (z.B. fünf) - bin dem aber nicht nachgegangen. Die Kurve der Ordnung 25 wird nicht mehr angezeigt (wahrscheinlich, weil das Bild schon so groß ist). Alles darüber funktioniert bei mir gar nicht mehr - das Programm stürzt einfach ab. Nur, dass sich keiner wundert Razz
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

LordCoder

BeitragMo, Jan 14, 2013 1:03
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMoritz hat Folgendes geschrieben:
@LordCoder: Wenn man für einen einzelnen Schritt minimal 1 Pixel veranschlagt, hat dein Drache nicht die 20.Ordnung. "Kleinere Schritte" machen insofern keinen Sinn, da sie nicht darstellbar und nicht zu erkennen sind aufgrund der Selbstähnlichkeit des Fraktals. Eine trotzdem höhere Ordnung hätte nur theoretischen Wert bzw. sie müsste allein aus dem Code herausgelesen werden.


Du hast natürlich recht. Mein Programm rechnet aber trotzdem alle 20 Ordnungen durch und verbindet halt x-mal den selben Pixel mit sich selber.

Mein Code sieht ungefähr so aus:
(entspricht nicht meinem Bild, da ohne Farbe und andere Positionen)

Der Vorteil an meinem Bild scheint es zu sein, dass ich keine Probleme mit aus dem Bild laufende Drachenkurven habe.

BlitzBasic: [AUSKLAPPEN]

AppTitle("Drachenkurven")
Graphics 649,480, 0,2
dragon(100,200,400,200,1,20)
Function dragon(x1,y1,x2,y2,dir,n)
If(n<1)
Line x1,y1,x2,y2
Else
If dir=1 ;uhrzeigersinn-knicks
dragon(x1,y1, x1+(x2-x1)/2+(y2-y1)/2,y1+(y2-y1)/2-(x2-x1)/2,1,n-1)
dragon(x1+(x2-x1)/2+(y2-y1)/2,y1+(y2-y1)/2-(x2-x1)/2, x2,y2,2,n-1)
Else If dir=2 ; gegenuhrzeigersin-knicks
dragon(x1,y1, x1+(x2-x1)/2-(y2-y1)/2,y1+(y2-y1)/2+(x2-x1)/2,1,n-1)
dragon(x1+(x2-x1)/2-(y2-y1)/2,y1+(y2-y1)/2+(x2-x1)/2, x2,y2,2,n-1)
EndIf
EndIf
End Function
WaitKey
End
3. Platz BCC #60

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group