Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 반슬리 고사리

<시간/>

이 튜토리얼에서는 Barnsley Fern , Michael Barnsley가 작성했습니다. . 반슬리 펀의 특징 고사리와 유사합니다. 모양. 반복 함수 시스템(IFS)으로 알려진 4개의 수학 방정식을 반복하여 생성됩니다. . 변환의 공식은 다음과 같습니다.

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

출처 - 위키피디아

변수의 값은 -

Python의 반슬리 고사리

출처 - 위키피디아

Barnsley Fern이 제안한 4개의 방정식은 -

Python의 반슬리 고사리

출처 - 위키피디아

이제 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()

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Python의 반슬리 고사리

결론

튜토리얼에 의문점이 있으면 의견 섹션에 언급하십시오.Reference −Wikipedia