Fraktal

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

timmeTheOnly

Betreff: Fraktal

BeitragSo, Okt 28, 2007 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hoffe, das gabs nicht schon.

Das Fraktal, ein typisches Beispiel für Rekursion.

Code: [AUSKLAPPEN]

Graphics 1024,768,32,2
SetBuffer BackBuffer()

Const ebenen = 6                              ; Anzahl Ebenen
Const groesse = 100                           ; Größe der ersten Linie
Const verkleinerungsfaktor# = 0.75   ; Selbsterklärend
Const winkel = 45                              ; Winkel

fraktal(GraphicsWidth()*0.5,GraphicsHeight()*0.66,1,ebenen,groesse,verkleinerungsfaktor#,0,winkel)
Flip

WaitKey
End

Function fraktal(x,y,da,dm,s#,f#,aa,ac) ; Parameter: x,y,Aktuelle Ebene,Maximale Ebene,Größe,Verkleinerungsfaktor,Aktueller Winkel,Winkeländerung
      If da <= dm
            x1 = x
            y1 = y
            
            x2 = x1 - Sin(aa) * s
            y2 = y1 - Cos(aa) * s
            
            Line x1,y1,x2,y2
            
            da = da + 1
            s# = s# * f#
            
            a = aa - ac
            
            fraktal(x2,y2,da,dm,s,f#,a,ac)
            
            a = aa + ac
            
            fraktal(x2,y2,da,dm,s,f#,a,ac)
      EndIf
      
      Return 1
End Function
 

bunni

BeitragMo, Okt 29, 2007 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Nützlich aber auch ich net weiß
was ein Fraktal

Tankbuster

BeitragMo, Okt 29, 2007 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein kleiner nützlicher Link zum nachschlagen von Fraktal Wink
[url]wikipedia.org[/url]

ich find die Formen echt mal hammer lustig^^
Twitter
Download Jewel Snake!
Windows|Android
 

Froggy

BeitragMo, Okt 29, 2007 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein Fraktal (sollte gleiches sein, wie deines, aber kürzerer Code):

Code: [AUSKLAPPEN]


Graphics 1000,800,32,2
SetBuffer BackBuffer()

fraktal(500,600,0,10,200,0.6)
Flip

Function fraktal(x,y,w,n,l,s#) ;x-Position / y-Position / Winkel / Anzahl Verästelungen / Anfangslänge / Streckungsfaktor
   If n>0 Then
      w=w-45
      Line x,y,x+Sin(w)*l,y-Cos(w)*l
      fraktal(x+Sin(w)*l,y-Cos(w)*l,w,n-1,l*s,s)
      w=w+90
      Line x,y,x+Sin(w)*l,y-Cos(w)*l
      fraktal(x+Sin(w)*l,y-Cos(w)*l,w,n-1,l*s,s)
      w=w-45
   EndIf
End Function


EDIT: Merke grade, dass es garnicht soviel kürzer ist. Sorry für den Ärger Wink

EDIT2: Dafür gibts ein neues Fraktal:
Code: [AUSKLAPPEN]

Graphics 1000,800,32,2
SetBuffer BackBuffer()

fraktal2(500,500,0,10,200,0.5)
Flip

Function fraktal2(x,y,w,n,l,s#) ;x-Position / y-Position / Winkel / Anzahl Verästelungen / Anfangslänge / Streckungsfaktor
If n>0 Then
w=w-90
Line x,y,x+Sin(w)*l,y-Cos(w)*l
fraktal2(x+Sin(w)*l,y-Cos(w)*l,w,n-1,l*s,s)
For i = 0 To 1
w=w+90
Line x,y,x+Sin(w)*l,y-Cos(w)*l
fraktal2(x+Sin(w)*l,y-Cos(w)*l,w,n-1,l*s,s)
Next
w=w-90
EndIf
End Function

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group