Ordnung im Chaos!

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Darren

Betreff: Ordnung im Chaos!

BeitragMi, Feb 18, 2009 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Abend!

Vielleicht merkt man es, aber ich mag Mathe Very Happy

Stellt euch einmal folgendes vor: Ich konstruiert ein gleichseitiges dreieck und ordnet jeder ecke eine zahl von 1 bis 3 zu. jetzt macht ihr mit nem stift iwo im dreieck einen punkt und würfelt einmal. ihr ordnet immer zwei zahlen auf dem würfel einer eckenzahl zu, damit die wahrscheinlichkeit für jede zahl gleich groß ist. wenn ihr jetzt gewürfelt habt, denkt ihr euch die strecke zwischen eurem anfangpunkt und dem gewürfeltem eckpunkt. diese strecke halbiert ihr und macht auf dem mittelpunkt der strecke einen punkt. jetzt würfelt ihr wieder und geht von dem mittelpunkt aus mit einer strecke zum gewürfelten eckpunkt und nehmt wieder den mittelpunkt. jetzt ist die frage was man zu sehen bekommt, wenn man diese konstruktionsschritte ganz oft wiederholt...

folgendes programm führt es euch vor augen! vielleicht könnt ihr ja auch etwas überlegen... und wer nach dem ausführen nicht erstaunt ist, der wird von mir verhaun!

hier der code:
Code: [AUSKLAPPEN]
Type r2_vec ;richtungen mit prefix d_, positionen mit l_
   Field x1#
   Field x2#
End Type

Type r2_line
   Field l_a.r2_vec
   Field l_b.r2_vec
   Field d_v.r2_vec ;normalisiert
   Field length#
   Field angle#
End Type

SeedRnd MilliSecs()

Graphics 800,600,16,2

SetBuffer FrontBuffer()

Local p.r2_vec[2]
Dim following(2)
following(0) = 1
following(1) = 2
following(2) = 0

Local i = 0
For i = 0 To 2
   p[i] = New r2_vec
Next

p[0]\x1 = 70
p[0]\x2 = 590
p[1]\x1 = 730
p[1]\x2 = 590
p[2] = create_tris(p[0],p[1])

Local pkt.r2_vec = New r2_vec
Local mitte.r2_vec = New r2_vec
Local linie.r2_line = New r2_line

Local erstellt = 0
Local zufall
While Not KeyHit(1)
   If MouseHit(1) = 1 Then
      erstellt = 1
      pkt\x1 = MouseX()
      pkt\x2 = MouseY()
      linie\l_a = pkt
   End If
   
   For i = 0 To 2
      Line p[i]\x1-5,p[i]\x2-5,p[i]\x1+5,p[i]\x2+5
      Line p[i]\x1-5,p[i]\x2+5,p[i]\x1+5,p[i]\x2-5
      Line p[i]\x1,p[i]\x2,p[following(i)]\x1,p[following(i)]\x2
   Next   
   
   If erstellt = 1 Then
      zufall = Rand(0,2)      
      linie\l_b.r2_vec = p[zufall]
      mitte.r2_vec = divide_line(linie.r2_line,0.5)
      Plot mitte\x1,mitte\x2
      linie\l_a = mitte      
   End If
Wend
End

;geometriekonstruktionen:
Function divide_line.r2_vec(l.r2_line,t#);t = prozentual auf der linie
   Local t1_x1#,t1_x2#
   Local laenge# = Sqr((l\l_a\x1-l\l_b\x1)^2 + (l\l_a\x2-l\l_b\x2)^2)
   Local d_x1#,d_x2#
   d_x1 = (l\l_a\x1 - l\l_b\x1)/laenge
   d_x2 = (l\l_a\x2 - l\l_b\x2)/laenge
   t1_x1 = l\l_a\x1 - t*laenge*d_x1
   t1_x2 = l\l_a\x2 - t*laenge*d_x2
   Local t1.r2_vec = New r2_vec
   t1\x1 = t1_x1
   t1\x2 = t1_x2
   Return t1
End Function

Function create_tris.r2_vec(p1.r2_vec,p2.r2_vec)
   Local koeffizient_h# = 0.5 * Sqr(3)
   Local m_x1#,m_x2#
   m_x1 = (p1\x1 + p2\x1)/2
   m_x2 = (p1\x2 + p2\x2)/2
   Local laenge = Sqr((p1\x1 - p2\x1)^2 + (p1\x2 - p2\x2)^2)
   Local hoehe_length = laenge * koeffizient_h
   Local d_x1#,d_x2#
   d_x1 = (p2\x2 - p1\x2)/laenge
   d_x2 = (-p2\x1 + p1\x1)/laenge
   Local peak_x1# = m_x1 + d_x1 * hoehe_length
   Local peak_x2# = m_x2 + d_x2 * hoehe_length
   Local peak.r2_vec = New r2_vec
   peak\x1 = peak_x1
   peak\x2 = peak_x2
   Return peak
End Function
MFG Darren

SpionAtom

BeitragMi, Feb 18, 2009 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Such mal hier nach Sierpinksi.

Dann findest du zb sowas hier:
https://www.blitzforum.de/foru...sierpinski
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

Darren

BeitragDo, Feb 19, 2009 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Oha, dass es das gab, wusste ich nicht. ich bitte in aller Form um Verzeihung. Naja ich bin zur Zeit dabei meine Fähigkeiten was mathematische Programmierung angeht bisschen aufzupeppen und versuch mich da an allen möglichen sachen.
MFG Darren

Blackside

BeitragDo, Feb 19, 2009 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Erinnert mich irgendwie immer an Zelda(Triforce) xD
Hier sollte eigentlich eine Signatur stehen!
 

Darren

BeitragDo, Feb 19, 2009 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Blackside hat Folgendes geschrieben:
Erinnert mich irgendwie immer an Zelda(Triforce) xD


Ja das ist die erste Iteration dieses Dreiecks!
MFG Darren

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group