Mari kita mulai dengan dasar-dasarnya, jika kita mengambil definisi dari Wikipedia yang terkenal dan dicintai, maka sistem-L (atau sistem Lindenmeier ) adalah sistem penulisan ulang paralel dan bentuk tata bahasa formal.
Secara sederhana, sistem-L terdiri dari alfabet karakter yang dapat digunakan untuk membuat string, sekumpulan aturan generatif yang menentukan aturan substitusi untuk setiap karakter, string awal ( "aksioma" ), yang dengannya konstruksi dimulai, dan mekanisme penerjemahan yang dibentuk oleh garis menjadi struktur geometris. Contoh paling sederhana dari sistem-L adalah masalah konstruksi pohon.
Memasukan data:
String ( selanjutnya disebut Aksioma ): AB
Variabel ( yang dapat kita gunakan dalam membangun pohon ): ABC
Aturan ( aturan di mana setiap variabel di baris berikutnya berubah ):
A -> AB
B -> AC
C -> A
Transformasi berikut diperoleh: ββ ββ ββ ββββ ββββ ββ ββ ββββ ββββββ ββ
Generasi |
kondisi |
|---|---|
satu |
AB |
2 |
AB AC |
3 |
AB AC AB A |
4 |
AB AC AB A AB AC AB |
lima |
AB AC AB A AB AC AB AB AC AB A AB AC |
6 |
dll⦠|
Arah utama sistem-L digunakan adalah memodelkan proses pertumbuhan organisme hidup dan benda mati (kristal, cangkang moluska atau sarang lebah) .
Contoh:
Untuk mensimulasikan proses seperti itu, kita akan menggunakan bahasa pemrograman seperti Python, yang memiliki pustaka "penyu" bawaan .
Jadi mari kita mulai:
Di sini kami mengimpor perpustakaan Turtle ke dalam proyek kami:
import turtle
Selanjutnya, kami menyertakan semua konfigurasi yang diperlukan untuk turtle kami :
turtle.hideturtle()
turtle.tracer(1)
turtle.penup()
turtle.setposition(-300,340)
turtle.pendown()
turtle.pensize(1)
, :
axiom = "F+F+F+F"
tempAx = ""
itr = 3
(itr- , )
, itr-, "" /:
for k in range(itr):
for ch in axiom:
if ch == "+":
tempAx = tempAx + "+"
elif ch == "-":
tempAx = tempAx + "-"
elif ch == "F": #F
tempAx = tempAx + "F+F-f-F+F"
else:
tempAx = tempAx + "f"
axiom = tempAx
tempAx = " "
print(axiom)
, "+":
if ch == "+":
tempAx = tempAx + "+"
( ) β+β β+β . β-β βfβ, β-β βfβ . βFβ, βF + F β f β F + Fβ, . , ββ, . :
axiom = tempAx
tempAx = " "
( ):
, , . , :
for ch in axiom:
if ch == "+":
turtle.right(45)
turtle.forward(10)
turtle.right(45)
elif ch == "-":
turtle.left(45)
turtle.forward(10)
turtle.left(45)
else:
turtle.forward(20)
, , "+", "-", "F" "f". , "+":
if ch == "+":
turtle.right(45)
turtle.forward(10)
turtle.right(45)
, 45 , , 10, , 45 . "-":
elif ch == "-":
turtle.left(45)
turtle.forward(10)
turtle.left(45)
, "+", , . "F" "f", 20 :
else:
turtle.forward(20)
-:
-, :
turtle.fillcolor("#99BBFF")
turtle.begin_fill()
#99BBFF - (RGB: 153, 187, 255), begin_fill() . , , :
turtle.end_fill()
turtle.update()
turtle.done()
end_fill() . "". -:
, "" , .
Pada akhirnya saya juga ingin menambahkan bahwa saya sangat menikmati bekerja dan menulis tentang topik ini, mungkin kedepannya saya akan menulis beberapa artikel dengan topik "L-sistem", namun sementara itu, saya ingin mempersembahkan hasil kreativitas saya yang mencolek :