Sierpinski-Dreieck

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

sbrog

Betreff: Sierpinski-Dreieck

BeitragMo, Sep 13, 2004 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Graphics 800,600
SeedRnd MilliSecs()


Dim eckpunkt(2,1) ;Die Eckpunkte des Dreiecks ,der linke Wert ist der Punkt, der rechte wert x u. y

Const iterationen = 20000

Type punkt
Field x
Field y
End Type

p.punkt = New punkt

startpunkt.punkt = New punkt
startpunkt\x = 400
startpunkt\y = 300





p.punkt = startpunkt


SetBuffer BackBuffer()

Repeat
Cls

winkel# = winkel + 0.5 Mod 360


;Die Eckpunkte berechnen
eckpunkt(0,0) = Sin(eckpunkt(0,1) )*150+400
eckpunkt(0,1) = Cos(winkel)*150+400

eckpunkt(1,0) = Sin((eckpunkt(1,1)+120))*150+400
eckpunkt(1,1) = Cos(winkel+120)*150+300

eckpunkt(2,0) =Sin(eckpunkt(2,1)+240)*150+400
eckpunkt(2,1) =Cos(winkel+240)*150+300


LockBuffer BackBuffer()

;Der Hauptteil, nämlich der Algorhytmus, wie das Dreieck gebildet wird
For i = 0 To iterationen

zufall = Rnd(2)
p\x = p\x +(eckpunkt(zufall,0)-p\x)/2
p\y = p\y +(eckpunkt(zufall,1)-p\y)/2

WritePixelFast p\x,p\y,rgb(255,0,0)
Next

UnlockBuffer BackBuffer()




Flip
Until KeyHit(1)


Function rgb(rot,gruen,blau)
Return blau Or(gruen Shl 8) Or (rot Shl 16)
End Function
  • Zuletzt bearbeitet von sbrog am Mo, Sep 13, 2004 15:11, insgesamt einmal bearbeitet

Lord_Vader

BeitragMo, Sep 13, 2004 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Gute arbeit, is aber net allzuschön das dreieck und mehr dazu sagen könnteste auch!

sbrog

BeitragMo, Sep 13, 2004 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Lol, was soll ich dazu denn sagen ?

Der Algorhytmus kommt nicht von mir, ich hab den nur in eine Programmiersprache umgesetz und die Optische Täuschung reingebracht, so dass es ein wenig nach 3d aussieht.

Das ganze ist ziemlich schnell, mit Flip 0 läuft es bei mir auf 160 Frames/sek

Das Dreieck wird so erstellt : man kennzeichnet die drei Eckpunkte des Dreiecks und einen Beliebigen Punkt. Nun denkt man sich eine Linie von dem Punkt zu einem der Eckpunkte. Auf der Mitte der Linie kennzeichnet man einen weiteren Punkt und denkt sich von dem neuen Punkt eine Linie zu einem beliebigen Eckpunkt. Nach ca. 10000 Wiederholungen lässt sich langsam dieses Dreieck sehen.

Ihr könnt euch ja einen Bleistift und ein Stük Papier schnappen ,und das ganze mal nachmachen, um es besser nachzuvollziehen Very Happy

An der Konstanten 'iterationen' kann beliebig herumgespielt werden.

Bms

BeitragMo, Sep 13, 2004 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
[Zitat]
Das ganze ist ziemlich schnell, mit Flip 0 läuft es bei mir auf 160 Frames/sek
[/Zitat]

was - so schnell ???
bei mir vielleicht 5 frames/sek.
aber toller effekt. nur: wozu braucht man das???
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download

sbrog

BeitragMo, Sep 13, 2004 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

aber toller effekt. nur: wozu braucht man das???


Die Drehung ist eigentlich nur als optische Vreschönerung gedacht, und für mich als Lernzweck, weil es doch eine ziemliche Herausforderung für mich war, eine realistische Drehbewegung zu bekommen.

Das Dreieck selber ist eine Art Fraktal. Aus dem Dreieck wird ein Dreieck ausgeschnitten, welches das Dreieck in drei kleinere Driecke zerteilt. Diese werden wiederum in drei dreiecke zerteilt usw.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group