কম্পিউটার টিউটোরিয়াল

পাইথনে বার্নস্লি ফার্ন ফ্র্যাক্টাল তৈরি করা

এই টিউটোরিয়ালে আমরা বার্নস্লি ফার্ন (Barnsley Fern) সম্পর্কে জানব, যা মাইকেল বার্নস্লি তৈরি করেছেন। এর আকৃতি ফার্ন (ফার্ন পত্র) এর মতো। এটি চারটি গাণিতিক সমীকরণের মাধ্যমে তৈরি হয়, যাকে ইটারেটেড ফাংশন সিস্টেম (IFS) বলা হয়।

ট্রান্সফরমেশন ফর্মুলা:

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

ভেরিয়েবলের মানগুলো (উৎস: উইকিপিডিয়া):

পাইথনে বার্নস্লি ফার্ন ফ্র্যাক্টাল তৈরি করা

চারটি সমীকরণ (উৎস: উইকিপিডিয়া):

পাইথনে বার্নস্লি ফার্ন ফ্র্যাক্টাল তৈরি করা

পাইথন কোড: বার্নস্লি ফার্ন আঁকা

import matplotlib.pyplot as plot
import random

# লিস্ট ইনিশিয়ালাইজ
x = [0]
y = [0]
current = 0

for i in range(1, 1000):
    # ১ থেকে ১০০ পর্যন্ত র‍্যান্ডম ইন্টিজার
    z = random.randint(1, 100)
    
    # z এর রেঞ্জ অনুযায়ী x, y আপডেট
    if z == 1:
        x.append(0)
        y.append(0.16 * y[current])
    if 2 <= 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 87 <= 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 94 <= z <= 100:
        x.append(-0.15 * x[current] + 0.28 * y[current])
        y.append(0.26 * x[current] + 0.24 * y[current] + 0.44)
    
    current += 1

# গ্রাফ আঁকুন
plot.scatter(x, y, s=0.2, edgecolor='green')
plot.show()

আউটপুট

পাইথনে বার্নস্লি ফার্ন ফ্র্যাক্টাল তৈরি করা

উপসংহার

IFS ব্যবহার করে ফ্র্যাক্টাল আঁকার সুন্দর উদাহরণ। রেফারেন্স: উইকিপিডিয়া। প্রশ্ন থাকলে কমেন্ট করুন।


  1. পাইথনে issuperset() ফাংশন

  2. পাইথনে callable() ফাংশন

  3. পাইথনে আন্ডারস্কোর (_) এর ব্যবহার

  4. পাইথনে Quine প্রোগ্রাম (স্ব-প্রजनনকারী কোড)