بازگشت و فراکتال

ساخت وبلاگ

بازگشتی روند تکرار موارد به روشی شبیه به خود است. با ساختن یک بلوک سفارشی که خود را اجرا می کند ، می توان آن را در ابتدا اجرا کرد. این می تواند برای ایجاد فراکتال استفاده شود.

فراکتال الگویی است که تصویری را تولید می کند ، که حاوی مقدار نامحدودی از نسخه های خود است. برخی از نمونه های مشهور مجموعه Mandelbrot ، مثلث Sierpinski (همچنین ، اما کمتر به عنوان Gasket Sierpinski شناخته می شوند) و Snowflake Koch.

فهرست

ایجاد منحنی Koch

  این صفحه یا بخش در مورد اینکه آیا مفید است یا خیر ، مورد سوال است. می توانید در مورد اینکه آیا فکر می کنید باید حذف شود یا نه در صفحه بحث آن بحث کنید.(ژانویه 2020)دلیل: به نظر می رسد بیش از حد فنی است

منحنی Koch یک فراکتال است که می تواند نسبتاً به راحتی در ابتدا ایجاد شود. این یک تکه از فراکتال بزرگتر ، برف کچ است.

درک بازگشت در منحنی کچ

منحنی Koch از چهار منحنی Koch ساخته شده است که یک سوم از اندازه منحنی اصلی Koch است. آنها به گونه ای ترتیب داده شده اند که اول و چهارم مسطح است و دو نقطه میانی برای ساختن یک طرفه که مثلث از دست رفته یک طرف است.

Recersion in Koch Curve.png

برای آسان تر کردن ترسیم ، منحنی Koch را می توان به تکرارها تقسیم کرد که هر کدام پیچیده تر از گذشته هستند. اولین تکرار از چهار خط مستقیم ساخته شده است. تکرار دوم شامل چهار نسخه از اولین تکرار است. تکرار سوم شامل چهار نسخه از تکرار دوم یا شانزده نسخه از اولین تکرار است. با افزودن تکرارها ، پیچیده تر می شود و بیشتر و بیشتر شبیه منحنی Koch واقعی است.

Iterations of Koch Curve.png

مسیر قلم اساسی بدون بازگشت

مثلث در مرکز یک مثلث مساوی است ، بنابراین هر یک از زوایای آن اندازه گیری 60 درجه است.

Equilateral Triangle in Koch Curve.png

با استفاده از هندسه اساسی ، زوایای چرخش هایی که Sprite باید ایجاد کند می توان یافت.

Sprite Tus in Koch Curve.png

با استفاده از این زاویه ها ، یک اسکریپت ایجاد می شود که اولین تکرار منحنی Koch را ترسیم می کند. از آنجا که هر بخش خط 1/3 طول کل منحنی Koch است ، اسپریت باید هر بار 1/3 از طول داده شده حرکت کند.

اضافه کردن بازگشت

برای افزودن بازگشتی ، به جای ترسیم یک خط ، می توان یک منحنی کوچکتر Koch را ترسیم کرد. هنگامی که هر تکرار بالاتر از آن کشیده می شود ، حاوی چهار منحنی کوچک Koch است که یک تکرار کمتر از خود است. به عنوان مثال ، هنگام ترسیم تکرار دوم ، باید چهار نسخه بکشید که 1/3 اندازه تکرار اول است. وقتی برنامه به اولین تکرار رسید ، باید خطوط مستقیم را ترسیم کند. کد زیر پنجمین تکرار منحنی Koch را ایجاد می کند:

ایجاد مجموعه Mandelbrot

مجموعه Mandelbrot یک فراکتال ریاضی است که در صفحه پیچیده تعریف شده است. این کاملاً شبیه به خود است ، به این معنی که بارها و بارها تکرار می شود.

درک تعریف

در تعریف خود ، ماندلبروت از اعداد پیچیده استفاده می کند. یک عدد پیچیده ، مجموع یک عدد واقعی و یک نسخه خیالی است که یک عدد خیالی به سادگی ریشه مربع یک عدد منفی است. از آنجا که نمی توان آن را گرفت ، ریشه مرب ع-1 مقدار i را اختصاص می دهد. به عنوان مثال ، 3+3i یک عدد پیچیده است.

مجموعه Mandelbrot به عنوان تمام مقادیر C در دشت پیچیده تعریف شده است که در معادله زیر تحت تکرار محدود می شوند:

اول ، یکی با مقدار z از c شروع می شود (یعنی z1= ج). سپس ، هنگامی که فرد آن Z را به معادله برگرداند ، z^2+c می شود. سپس Z گرفته می شود و بارها و بارها از طریق معادله قرار می گیرد. به این تکرار گفته می شود.

به عنوان مثال ، اجازه دهید c = 1. مقدار z سپس 1 می شود. هنگامی که 1 به معادله برگردید ، معادله 1^2+1 می شود ، که برابر است. 2دوباره قرار می گیرد ، 26 می شود. در ضمن ، دنباله C = -1 0 ، 1 ، 0 ، -1 ، 0 ، ECT را می دهد. محدود است و به همین ترتیب متعلق به مجموعه Mandelbrot است.

ثابت شده است که اگر هر دنباله ای حاوی یک مقدار پیچیده باشد که خارج از فاصله 2 از مبدا باشد ، به بی نهایت فرار می کند.

رنگ آمیزی

در یک مجموعه اساسی ماندلبروت ، از سفید برای مقادیر C استفاده می شود که به بی نهایت فرار می کند و سیاه برای همه مقادیر C که انجام نمی شود استفاده می شود. این مجموعه واقعی Mandelbrot خواهد بود.

در اکثر مجموعه های ماندلبروت ، از رنگ ها برای کمک به تصویر کردن مجموعه Mandelbrot استفاده می شود یا آن را هنری تر تر می کند. رنگ ها از طریق یک معادله تعریف نمی شوند ، بلکه از طریق آخرین تکرار قبل از فرار از فاصله دو از مبدا. سپس تکرار به رنگ اولویت خالق اختصاص می یابد. رنگ همچنین می تواند در مورد نرخ معادله به بی نهایت اعمال شود.

ایجاد متغیرها

با توجه به این واقعیت که Scratch به طور مستقیم از ریاضیات در دشت پیچیده پشتیبانی نمی کند ، باید از یک راه حل ساده استفاده شود. هر عدد پیچیده به عنوان دو متغیر ، قسمت واقعی و قسمت پیچیده تعریف می شود. و از آنجا که بر اساس شماره های پیچیده عملیات انجام خواهد شد ، به دو شماره پیچیده یا چهار متغیر نیاز خواهد بود. برای آموزش ، از این نام ها استفاده می شود:

  • (واقعی 1)
  • (واقعی 2)
  • (خیالی 1)
  • (خیالی 2)

در کنار آن ، از متغیرهای متغیر از بهترین متغیر برای فهمیدن رنگ مورد استفاده در هنگام رنگ آمیزی یک مقدار پیچیده استفاده می شود:

برنامه نویسی

برای شروع ، یک پایه کلون برای ارائه کامل صفحه به دلیل قدرت محاسباتی مورد نیاز برای ارائه مجموعه Mandelbrot مورد نیاز است:

بعد ، مهم است که به کلون ها اسکلت بدهید:

اگرچه این یک اسکریپت کاربردی است ، اما ارائه آن مدتی طول می کشد. برای ترجیحات سرعت ، یک بلوک سفارشی وارد می شود:

همانطور که در بالا ذکر شد ، مهم است که بلوک سفارشی "تکرار اجباری" بدون تازه کردن صفحه نمایش اجرا شود وگرنه تمام مزایای سرعت اضافی از بین می رود.

به هر حال ، اکنون که کدگذاری شده است ، یک اسکلت برای نمونه برداری از یک نقطه و فهمیدن اینکه آیا این بخشی از مجموعه Mandelbrot است یا نه ، ایجاد می شود:

اکنون اینجا جایی است که ریاضیات مجموعه Mandelbrot در حال پخش است. در آزمون بلوک سفارشی خوانایی ، شخصی مجبور است یک عدد پیچیده را بگیرد ، معادله ای را که مجموعه Mandelbrot را تعریف می کند ، اعمال کند و اگر هنوز در فاصله 2 از مبدا قرار دارد ، تکرار کنید:

در بالا ، ممکن است توجه شود که تکرار ادامه می یابد تا زمانی که تعداد پیچیده بخشی از مجموعه Mandelbrot نباشد ، یا تا زمانی که 20 بار تکرار نشود. این 20 را می توان به هر آنچه می خواهد تغییر یابد ، با تعداد بالاتر کیفیت بالاتری تولید می کند. گرچه تعداد آنها بیشتر است ، اما تاخیر بیشتری ایجاد می شود.

برای تکمیل مجموعه Mandelbrot ، رنگ ها باید اجرا شوند:

این رنگ ها ممکن است به خواسته های شخص تغییر یابد.

محصول نهایی

در پایان ، این تمام کدی است که برای ترسیم مجموعه Mandelbrot (پیمایش برای دیدن همه کد) استفاده می شود:

جولیا ست

مجموعه جولیا مجموعه ای از معادلات است که فراکتال های ریاضی هستند و بسیار مشابه مجموعه Mandelbrot تعریف شده است. معادله رسمی:

تنها تفاوت در تعریف آن از مجموعه Mandelbrot در این است که C دیگر نقطه ای در صفحه پیچیده نیست ، بلکه یک پارامتر پیچیده است ، که هر نقطه ای را که انتخاب می کنید سازگار است. همچنین ، Z1 به عنوان نقطه ای که در صفحه پیچیده انتخاب می کنید تعریف شده است. تکنیک فوق برای ارائه مجموعه Mandelbrot ممکن است در اینجا با تغییرات مورد نیاز دوباره استفاده شود.

استراتژی ترید...
ما را در سایت استراتژی ترید دنبال می کنید

برچسب : نویسنده : مرجان شیرمحمدی بازدید : 36 تاريخ : چهارشنبه 31 خرداد 1402 ساعت: 21:17