প্রকৃতিতে আমাদের চারপাশে ফ্র্যাক্টাল প্যাটার্ন রয়েছে। ফার্ন পাতার পাতা থেকে বের করা একটি ছোট ডাল যেমন পাতার সাথে সাদৃশ্যপূর্ণ। অথবা একটি নুড়ি প্রায়শই একটি পাহাড়ের আকারের অনুরূপ! তাই একটি বড় প্যাটার্ন তৈরি করার জন্য ছোট প্যাটার্নের পুনরাবৃত্তির এই ধারণাটি একটি ফ্র্যাক্টাল ট্রি হিসাবে পরিচিত। পাইথন প্রোগ্রামিং-এ আমরা উপলব্ধ বিভিন্ন মডিউল ব্যবহার করে ফ্র্যাক্টাল ট্রিও তৈরি করতে পারি।
পাইগেম মডিউল ব্যবহার করা
এই মডিউলটি আমাদেরকে ফ্র্যাক্টাল ট্রি তৈরি করতে প্রয়োজনীয় ফাংশন সরবরাহ করে। এখানে আমরা প্রথমে স্ক্রীন লেআউটের আকার সংজ্ঞায়িত করি এবং তারপর গভীরতা নির্ধারণ করি যেখানে প্যাটার্নগুলি নিজেদের পুনরাবৃত্তি করবে। এখানে পুনরাবৃত্তির একটি বড় ভূমিকা রয়েছে কারণ আমরা একটি নির্দিষ্ট গভীরতা পর্যন্ত একই প্যাটার্ন বারবার পুনরাবৃত্তি করতে যাচ্ছি।
উদাহরণ
import pygame, math pygame.init() screen = pygame.display.set_mode((750, 650)) pygame.display.set_caption("Fractal Tree") display = pygame.display.get_surface() def drawTree(a, b, pos, deepness): if deepness: c = a + int(math.cos(math.radians(pos)) * deepness * 10.0) d = b + int(math.sin(math.radians(pos)) * deepness * 10.0) pygame.draw.line(display, (127,255,0), (a, b), (c, d), 1) drawTree(c, d, pos - 25, deepness - 1) drawTree(c, d, pos + 25, deepness- 1) def process(event): if event.type == pygame.QUIT: exit(0) drawTree(370, 650, -90, 10) pygame.display.flip() while True: process(pygame.event.wait())
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়:
কচ্ছপ ব্যবহার করা
কচ্ছপ মডিউল ব্যবহার করে আমরা একই পদ্ধতি অনুসরণ করতে পারি। এখানে কচ্ছপ প্রোগ্রামটি কেবল অঙ্কনের দিক পরিবর্তন করে বারবার প্যাটার্ন হিসাবে গাছের শাখাগুলি আঁকা শুরু করে। আমরা সেই কোণগুলিকে সংজ্ঞায়িত করি যেখানে ফাংশনটি নিজেই পুনরাবৃত্তি করবে এবং তারপর আমরা সম্পূর্ণ ট্রি পাই৷
উদাহরণ
import turtle def tree(Length,n): if Length > 10: n.forward(Length) n.right(25) tree(Length-15,n) n.left(50) tree(Length-15,n) n.right(25) n.backward(Length) def function(): n = turtle.Turtle() data = turtle.Screen() n.left(90) n.up() n.backward(100) n.down() n.color("green") tree(85,n) data.exitonclick() function()
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়: