Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Barnsley Fern ใน Python


ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับ เฟิร์นบาร์นสลีย์ ซึ่งสร้างโดย Michael Barnsley . คุณสมบัติของ เฟิร์นบาร์นสลีย์ คล้ายกับเฟิร์น รูปร่าง. มันถูกสร้างขึ้นโดยการวนซ้ำสมการทางคณิตศาสตร์ทั้งสี่ที่เรียกว่า Iterated Function System (IFS) . การแปลงมีสูตรดังนี้

f(x,y)=$$\begin{bmatrix}a &b \\c &d \end{bmatrix}\begin{bmatrix}x \\y \end{bmatrix}+\begin{bmatrix}e \\ f \end{bmatrix}$$

ที่มา – Wikipedia

ค่าของตัวแปรคือ −

Barnsley Fern ใน Python

ที่มา – Wikipedia

สมการทั้งสี่ที่ Barnsley Fern เสนอคือ −

Barnsley Fern ใน Python

ที่มา – Wikipedia

ตอนนี้เราจะเห็นรหัสเพื่อสร้างรูปร่างเฟิร์นใน Python .

ตัวอย่าง

# importing matplotlib module for the plot
import matplotlib.pyplot as plot
# importing random module to generate random integers for the plot
import random
# initialising the lists
x = [0]
y = [0]
# initialising a variable to zero to track position
current = 0
for i in range(1, 1000):
   # generating a random integer between 1 and 100
   z = random.randint(1, 100)
   # checking the z range and appending corresponding values to x and y
   # appending values to the x and y
   if z == 1:
      x.append(0)
      y.append(0.16 * y[current])
   if z >= 2 and z <= 86:
      x.append(0.85 * x[current] + 0.04 * y[current])
      y.append(-0.04 * x[current] + 0.85 * y[current] +1.6)
   if z>= 87 and z<= 93:
      x.append(0.2 * x[current] - 0.26 * y[current])
      y.append(0.23 * x[current] + 0.22*(y[current])+1.6)
   if z >= 94 and z <= 100:
      x.append(-0.15 * x[current] + 0.28 * y[current])
      y.append(0.26 * x[current] + 0.24 * y[current] + 0.44)
   # incrementing the current value
   current += 1
# plotting the graph using x and y
plot.scatter(x, y, s = 0.2, edgecolor = 'green')
plot.show()

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

Barnsley Fern ใน Python

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทช่วยสอน โปรดระบุในส่วนความคิดเห็น ข้อมูลอ้างอิง −วิกิพีเดีย