परिचय एक फ्रैक्टल पेड़ एक पेड़ के रूप में जाना जाता है जिसे पुनरावर्ती सममित शाखाओं द्वारा बनाया जा सकता है।
लंबाई 1 का एक ट्रंक लंबाई r की दो शाखाओं में विभाजित होता है, जिनमें से प्रत्येक जो बैरल की दिशा के साथ एक कोण q बनाता है। इन दोनों शाखाओं को r * r लंबाई की दो शाखाओं में विभाजित किया गया है, जिनमें से प्रत्येक अपनी मूल शाखा की दिशा के साथ एक कोण q बनाती है। इस तरह से शाखाओं की अनंत संख्या को जारी रखते हुए, एक पेड़ अपने सीमित बिंदुओं के साथ शाखाओं का एक संग्रह है, जिसे शाखा युक्तियाँ कहा जाता है।
बस सिद्धांत, अब आइए पायथन में कार्यान्वयन का प्रयास करें। इसके लिए हमें GUI या GUI के लिए दो Python लाइब्रेरी Pygame और math, की आवश्यकता है, जो Python में एक अंतर्निहित लाइब्रेरी है और इसका उपयोग गणित में सुधार के लिए किया जाएगा।
पायगेम इंस्टॉल करने के लिए
पाइप इंस्टाल पाइगेम
तो कैसे आगे बढ़ें, यह अत्यधिक अनुशंसा की जाती है कि आप पाइग्मी और फ्रैक्टल्स के बारे में थोड़ा जान लें।
पहले ट्रंक बनाएं, और फिर शाखा का आकार 0.9 * (तने की लंबाई) मानकर प्रत्येक ट्रंक के लिए शाखाएं बनाना शुरू करें और फिर प्रक्रिया को दोहराते हुए शाखाओं को फिर से स्टेम के रूप में मानें।
<कोड वर्ग = "टिप्पणियां"> # अजगर पुस्तकालयों का आयात कोड>
<कोड वर्ग = "कीवर्ड"> आयात कोड> <कोड वर्ग = "सादा" > pygame, गणित
# सभी आयातित Pygame मॉड्यूल को इनिशियलाइज़ करें
pygame. init ()
# एक नया सरफेस और विंडो बनाएं।
<कोड वर्ग = "सादा"> सतह_ऊंचाई, सतह_चौड़ाई कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "मान"> 800 कोड> कोड> <कोड वर्ग = "सादा">, कोड> <कोड वर्ग =" मान "> 600 कोड> <कोड वर्ग = "टिप्पणियां"> # सतह चर कोड>
main_surface
=
pygame.display.set_mode ((surface_height, Surface_width))
# Window title
pygame.display.set_caption (
"Fractal_Tree_pythonengineering"
)
<कोड वर्ग = "कीवर्ड"> def कोड> <कोड वर्ग = "सादा"> draw_tree (आदेश, थीटा, एसजेड, स्थिति एन, शीर्षक, रंग कोड> <कोड वर्ग = "कीवर्ड"> = < / कोड> <कोड वर्ग = "सादा"> ( कोड> <कोड वर्ग = "मान"> 0 कोड> <कोड वर्ग = "सादा">, कोड> <कोड वर्ग = "मान"> 0 कोड>
<पी> <कोड वर्ग = "टिप्पणियां"> रिश्तेदार पूरे पेड़ के तने का अनुपात
ट्रंक_ratio
= कोड> <कोड वर्ग = "मान"> 0.29 कोड>
<कोड वर्ग = "टिप्पणियां"> # बैरल लंबाई कोड>
<कोड वर्ग = "सादा"> ट्रंक कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "सादा"> sz कोड> <कोड वर्ग = "कीवर्ड"> * कोड> <कोड वर्ग = "सादा"> ट्रंक_राती ओ कोड>
<पी> कोड वर्ग = "सादा"> डेल्टा_एक्स कोड> <कोड वर्ग = "कीवर्ड"> = कोड> कोड> <कोड वर्ग = "सादा"> ट्रंक कोड> <कोड वर्ग = "कीवर्ड"> * कोड> <कोड वर्ग = "सादा"> math.cos (शीर्षक) कोड><कोड वर्ग = "सादा"> delta_y कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "सादा"> ट्रंक कोड> <कोड वर्ग = "कीवर्ड"> * कोड> <कोड वर्ग = "सादा"> math.sin (शीर्षक) कोड>
कोड वर्ग = "अपरिभाषित रिक्त स्थान"> कोड> <कोड वर्ग = "सादा"> (यू, वी) कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "सादा"> posn
newpos
=
(u कोड) कोड> <कोड वर्ग = "कीवर्ड"> + कोड> <कोड वर्ग = "सादा"> डेल्टा_एक्स, वी कोड> <कोड वर्ग = "कीवर्ड"> + कोड> <कोड वर्ग = "सादा" > delta_y)
pygame.draw.line (main_surface, color, posn, newpos)
<कोड वर्ग = "कीवर्ड"> यदि कोड> <कोड वर्ग = "सादा"> आदेश > 0
:
# subtrees की एक और लेयर बनाएं
कोड> p>
# अगली छह पंक्तियाँ - साधारण हैक
# रिकर्सन के दो मुख्य भाग अलग हैं
# रंग। रंगों को दूसरे में बदलने के लिए यहां फिडल करें
# गहराई, या जब गहराई सम या विषम हो, आदि।
<कोड वर्ग = "कीवर्ड"> यदि कोड> <कोड वर्ग = "सादा"> गहराई कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "कीवर्ड"> = < /कोड> <कोड वर्ग = "मान"> 0 कोड> <कोड वर्ग = "सादा">: कोड>
<कोड वर्ग = "अपरिभाषित रिक्त स्थान"> कोड> < कोड वर्ग = "सादा"> रंग 1 कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "सादा"> ( कोड> <कोड वर्ग = "मान"> 255 कोड > <कोड वर्ग = "सादा">, कोड> <कोड वर्ग = "मान"> 0 कोड> <कोड वर्ग = "सादा">, कोड> <कोड वर्ग = "मान"> 0 < /कोड> <कोड वर्ग = "सादा">) कोड>
कोड वर्ग = "सादा"> रंग 2 कोड> <कोड वर्ग = "कीवर्ड"> = कोड> < कोड वर्ग = "सादा"> ( कोड> <कोड वर्ग = "मान"> 0 कोड> <कोड वर्ग = "सादा">, कोड> <कोड वर्ग = "मान"> 0 कोड > <कोड वर्ग = "सादा">, कोड> <कोड वर्ग = "मान"> 255 कोड> <कोड वर्ग = "सादा" ">) कोड>
कोड वर्ग = "कीवर्ड"> अन्य कोड> <कोड वर्ग = "सादा">: कोड>
कोड वर्ग = "सादा"> रंग1 कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "सादा"> रंग कोड>
<कोड वर्ग = "सादा" > color2 =
color
# दो सबट्री बनाने के लिए पुनरावर्ती कॉल करें
newsz
=
एसजेड कोड> <कोड वर्ग = "कीवर्ड"> * कोड> <कोड वर्ग = "सादा"> (कोड> <कोड वर्ग = "मान"> 1 कोड> <कोड वर्ग = "कीवर्ड"> - कोड> <कोड वर्ग = "सादा"> ट्रंक_अनुपात) कोड>
<कोड वर्ग = "सादा"> ड्रा_ट्री (आदेश सह डी> <कोड वर्ग = "कीवर्ड"> - कोड> <कोड क्लास = "वैल्यू"> 1 कोड> <कोड क्लास = "प्लेन">, थीटा, न्यूज, न्यूपॉज, हेडिंग कोड> <कोड क्लास = "कीवर्ड" > - कोड> <कोड वर्ग = "सादा"> थीटा, रंग1, गहराई कोड> <कोड वर्ग = "कीवर्ड"> + 1
)
draw_tree (आदेश कोड) कोड> <कोड क्लास = "कीवर्ड"> - कोड> <कोड क्लास = "वैल्यू"> 1 कोड> <कोड क्लास = "प्लेन">, थीटा, न्यूज, न्यूपॉस, हेडिंग कोड> <कोड क्लास = "कीवर्ड"> + कोड> <कोड क्लास = "प्लेन"> थीटा, कलर 2, डेप्थ कोड> <कोड क्लास = "कीवर्ड"> + कोड> <कोड क्लास = "वैल्यू"> 1 कोड> <कोड वर्ग = "सादा">) कोड>
कोड वर्ग = "कीवर्ड"> def कोड> <कोड वर्ग = "सादा" > मुख्य ():
<कोड वर्ग = "सादा"> थीटा कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "मान"> 0
<कोड वर्ग = "अपरिभाषित स्थान"> c ode>
<कोड वर्ग = "कीवर्ड"> जबकि <कोड वर्ग = "color1"> सच :
# कोने को अपडेट करें
<कोड वर्ग = "सादा"> थीटा कोड> <कोड वर्ग = "कीवर्ड"> + कोड> <कोड वर्ग s = "कीवर्ड"> = कोड> <कोड वर्ग = "मान"> 0.01 कोड>
<कोड वर्ग = "अपरिभाषित रिक्त स्थान"> कोड>
# यह छोटा सा हिस्सा हमें चीजों को आकर्षित करने देता है
# स्क्रीन पर सब कुछ
main_surface.fill ((
255
, कोड> <कोड वर्ग = "मान"> 255 कोड> <कोड वर्ग = "सादा">, कोड> <कोड वर्ग = "मान"> 0 कोड> <कोड वर्ग = "सादा">))
<कोड वर्ग = "अपरिभाषित रिक्त स्थान"> कोड> <कोड वर्ग = "सादा"> draw_tree ( 9 कोड> <कोड वर्ग = "सादा">, थीटा, सतह_ऊंचाई कोड> <कोड वर्ग = "कीवर्ड"> * कोड> <कोड वर्ग = "मान"> 0.9 कोड> < कोड वर्ग = "सादा">, (सतह_चौड़ाई कोड> <कोड वर्ग = "कीवर्ड"> / कोड> <कोड वर्ग =" कीवर्ड "> / कोड> <कोड वर्ग = "मान"> 2 < /कोड> <कोड वर्ग = "सादा">, सतह_चौड़ाई कोड> <कोड क्लास = "कीवर्ड"> - कोड> <कोड क्लास = "वैल्यू"> 50 कोड> <कोड क्लास = "प्लेन">), कोड> <कोड क्लास = "कीवर्ड"> - < /कोड> <कोड वर्ग = "सादा"> गणित.पीआई कोड> <कोड वर्ग = "कीवर्ड"> / कोड> <कोड वर्ग = "मान"> 2 कोड> <कोड वर्ग = "सादा" "> )
pygame.display.flip ()
# मुख्य फ़ंक्शन को कॉल करना
main ()
pygame.quit ()
बाहर निकलें:
% MINIF YHTMLc707a572199fb7b4b8a82374bf37b87213%<स्रोत प्रकार = "वीडियो / mp4 "src =" https://media.python.engineering/wp-content/uploads/2017-12-18-at-18-40-42.mp4?_=1 ">