Gra w chaos. Trójkąt Sierpińskiego w nowej wersji
Gry w chaos (które tu będę nazywał χ-grami, czyli chi-grami) pozwalają na tworzenie ciekawych figur i brył geometrycznych. Mam nadzieję, że niedługo pokażą swoją moc w takim obszarze nauki, jakim jest mechanika kwantowa.
Tymczasem jednak pokażę moją wersję znanej χ-gry. Chodzi o tworzenie trójkąta Sierpińskiego. W mojej wersji dokonałem jednak pewnej modyfikacji współczynnika a dzielącego odcinek χ-gry na części. Starałem się aby odległość między kolejnymi punktami gry była stała, co oznacza, że współczynnik a musi być zmienny. Ta zmiana spowodowała, że parametrem gry jest promień kroku gry oznaczony w listingu programu jako rd.
Poniżej przedstawiam wynik działania programu dla rd = 20 oraz 4.
Program jest dość kapryśny bo zmiana a w trakcie działania algorytmu może spowodować jego zachwianie. Tym niemniej pokażę tekst programu:
'chi-gra na trójkącie ze stałym krokiem
dane()
rysuj_narozniki()
For i = 1 To 200000
rog = math.GetRandomNumber(3)
deltax = x - xr[rog]
deltay = y - yr[rog]
delta2 = deltax * deltax + deltay * deltay
a2 = dr*dr/delta2
a = Math.SquareRoot(a2)
'TextWindow.WriteLine(a)
'odległość pomiędzy punktem i narożnikiem
x = x - deltax/a
y = y - deltay/a
rysuj_punkt()
EndFor
GraphicsWindow.DrawText(1,400,"Koniec obliczeń")
Sub dane
x = 5 'punkt początkowy gry
y = 5
xr[1]=0 'położenie rogów trójkąta
yr[1]=0
xr[2]=2
yr[0]=2
xr[3]=1
yr[3]= Math.SquareRoot(3) 'wysokośc trójkąta równobocznego
transx=10 'przesunięcie na ekranie
transy=10
skala = 200 'skala rysowania na ekranie
dr = 20 'stały promień kroku gry, nie robi błedów dla rd = 2.7, potem dopiero dla 3.0
EndSub
Sub rysuj_narozniki 'rysownie narożników trójkąta
For k = 1 To 3
GraphicsWindow.DrawEllipse(transx + xr[k]*skala, 400 - (transy + yr[k]*skala),2,2)
EndFor
EndSub
Sub rysuj_punkt
xe = transx + x*skala
ye = transy + y*skala
GraphicsWindow.SetPixel(xe,400 - ye, "blue")
EndSub
Komentarze
Prześlij komentarz