تکالیف 3: گرافیک بازگشتی

ساخت وبلاگ

ارسالsierpinski. java, art. java، و در صورت تمایل ، یک فایل زیپ حاوی هر پرونده تصویری تکمیلی مورد نیاز توسطart. javaبشرسرانجام ، یک پرونده تکمیل شده Readme_Sierpinski. txt را ارسال کنید.

زمینه

مثلث Sierpinski نمونه دیگری از الگوی فراکتال مانند الگوی H-Tree از بخش 2. 3 کتاب درسی است. ریاضیدان لهستانی Wacław Sierpiński این الگوی را در سال 1915 شرح داد ، اما از قرن سیزدهم در هنر ایتالیایی ظاهر شده است. اگرچه مثلث Sierpinski پیچیده به نظر می رسد ، اما می توان آن را با یک برنامه بازگشتی کوتاه تولید کرد. وظایف شما نوشتن یک برنامه بازگشتی است که مثلث Sierpinski و یک برنامه دوم را ترسیم می کند که طراحی دیگری از انتخاب شما را با استفاده از بازگشت ترسیم می کند.

در اینجا یک گالری هنری سالن از ترم های گذشته برای قسمت دوم این تکلیف وجود دارد.

در اینجا یک ویدیوی ذرت آب نبات Sierpinski آورده شده است. فیلم های دیگر او را در حالی که در آن هستید بررسی کنید!

قسمت اول: مثلث Sierpinski

یک برنامه بنویسیدsierpinski. javaبا یک عملکرد بازگشتیSierpinski ()و الفاصلی ()عملکردی که عملکرد بازگشتی را یک بار فراخوانی می کند و نتیجه را با استفاده از نقاشی استاندارد ترسیم می کند.

 

  • مثال H-Tree را از کتاب درسی و سخنرانی مرور کنید.

     

قسمت دوم: از آن لذت ببرید

در این قسمت شما الگوی بازگشتی خود را ایجاد خواهید کرد. یک برنامه بنویسیدart. javaاین یک استدلال خط فرمان عدد صحیح طول می کشدNبرای کنترل عمق بازگشت و الگوی بازگشتی از انتخاب خود را تولید می کند.

تا زمانی که قوانین زیر را دنبال می کند ، چه چیزی را بنویسید. گالری هنری را از ترم های گذشته برای ایده ها ، و همچنین فراکتال های معروف در فراکتال های خارج شده ، و لیست فراکتال های ویکی پدیا توسط ابعاد Hausdorff بررسی کنید. تولید برخی از تصاویر سخت تر از سایرین است (و برخی به ماشه نیاز دارند). اگر مطمئن نیستید برای مشاوره با TA مشورت کنید.

برخی از نمونه های لیست های فوق که الزامات را برآورده می کندart. javaدر زیر نشان داده شده است:

  • این الگوی می تواند مبتنی بر ترسیم بازگشتی الگویی باشد ، مانند سیرپینسکی ، بر روی زیر مجموعه بازگشتی ، مانند منحنی اژدها یا حرکت براونی فراکتال یا هر ترکیبی از این دو. اما باید بازگشتی باشد (با عرض پوزش ، هیچ فراکتال ماندلبروت).
  • ساختار بازگشتی برنامه شما باید با Sierpinski ، H-Tree و Brownian متفاوت باشد-فقط تغییر مثلث در Sierpinski به یک مربع ، به عنوان مثال ، کافی نیست. اگر تعداد تماس های بازگشتی متفاوت باشد ، یا ترتیب برقراری تماس ها متفاوت است ، باید خوب باشید.
  • برنامه شما نباید دوباره از بین ببرد. توابع بازگشتی دم در همان ابتدا یا انتهای عملکرد یک تماس بازگشتی ایجاد می کند.
  • نقاشی شما باید در میدان واحد بماند (منطقه بین 0 تا 1 در هر دوx- وy-دورین ها). پنجره کمی بیشتر از این نشان می دهد ، بنابراین اگر مربع را در برنامه خود بکشید ، می توانید ببینید که آیا نقاشی شما به خارج از آن می رود یا خیر.
  • پس زمینه نقاشی شما باید برای ذخیره تونر سفید باشد ، مگر اینکه از یک تصویر پس زمینه استفاده کنید. اگر از یک تصویر پس زمینه استفاده می کنید ، ممکن است مربع واحد را گسترش دهد. لطفاً آن را به بهترین شکل ممکن به اندازه صحیح خرد کنید ، زیرا درجه بندی را آسان تر می کند.
  • هشدارها: همه هشدارها در مورد آنها اعمال می شودart. javaمانندsierpinski. java.
  • شما می توانید به صورت اختیاری یک فایل ZIP را که حاوی هر تصویر ، صدا یا سایر داده های مورد نیاز برای برنامه خود است ، ارسال کنید. در صورت تمایل ، برنامه شما می تواند برای تأثیرگذاری به انیمیشن متکی باشد ، تا زمانی که بازگشتی باشد.
  • خلاق باشید و از آن لذت ببرید (اما یادداشت اضافی را در زیر مشاهده کنید).

اعتبار اضافی

برای ارسال های خلاقانه از نظر خلاق ، دو امتیاز اعتبار اضافی دریافت خواهید کرد. اعتبار اضافی برای اعلان های جالب و جذاب ، بلکه برای طرح های مخصوصاً جالب نیز پاداش می گیرد ، حتی اگر بازگشت نسبتاً ساده باشد. تا زمانی که شماart. javaحداقل بازگشت مورد نیاز را برآورده می کند (نه بازخوانی دم و متفاوت از مثالهای ما) ، واجد شرایط اعتبار اضافی خواهد بود.

از آنجا که این تکلیف قبل از نیمه ترم در یک برنامه فشرده شده قرار دارد ، ما اجازه می دهیم تا یک هفته دیررس اعتباری اضافی را ارسال کنیم. شما هنوز هم باید ارسال کنیدart. javaبا تکالیف خود برای درجه بندی ، بنابراین عملکردهای بازگشتی را به نوشتن تمرین می کنید. اما شما می توانید چیزی اساسی را برای نمره ارسال کنید و بعداً برای اعتبار اضافی چیزی خلاق تر است.

پس از مهلت منظم ، ما برای ارسال اعتبار اضافی یک تکلیف جداگانه باز خواهیم کرد. اگر اعتبار اضافی دریافت کنید ، هنوز هم در کارهای خانه اصلی شما وارد می شود. اگر اصل شما باشدart. javaشایسته اعتبار اضافی است ، خوب است. برای دریافت اعتبار اضافی نیازی به ارسال جداگانه ندارید.

سوالات متداول و مشکلات متداول

 

  • قبل از شروع این تکلیف به چه آماده سازی نیاز دارم؟بخش های 2. 1-2. 3 کتاب درسی را بخوانید.
  • آیا نیاز به بررسی خطایی دارم؟نه. به طور خاص ، شما ممکن است فرض کنید برنامه های شما دقیقاً با یک استدلال اجرا می شود که یک عدد صحیح مثبت خواهد بود (ممکن 0).
  • من یک پنجره خالی می بینم، حتی اگر یک مثلث بکشم. مطمئن شوید که همه مختصات شما بین 0 و 1 باشد. در غیر این صورت، شکلی که ترسیم می کنید خارج از پنجره است و قابل مشاهده نخواهد بود.
  • آیا می توانم از رنگ استفاده کنم؟آره! شما می توانید استفاده کنیدStdDraw. setPenColor()برای تنظیم رنگ طراحی در هر دوsierpinski. javaوart. java. StdDraw نام هایی را برای رنگ های استاندارد تعریف می کندStdDraw. RED.
  • آیا می توانم از رنگ هایی استفاده کنم که در StdDraw تعریف نشده اند؟بله، اما نیاز به نحوی دارد که تا آخر ترم به آن نمی پردازیم. در حال حاضر باید دستورالعمل های زیر را به عنوان جادو بپذیرید، یا خودتان معنی آن را جستجو کنید. شما می توانید رنگی مانند این ایجاد کنید:

     

غنی سازی: بعد فراکتال

در دبستان می آموزیم که بعد پاره خط یک، بعد مربع دو و بعد مکعب سه است. اما احتمالاً یاد نگرفته اید که منظور واقعاً از بعد چیست. چگونه می توانیم معنی آن را از نظر ریاضی یا محاسباتی بیان کنیم؟به طور رسمی، می‌توانیم بعد Hausdorff یا بعد شباهت یک شکل خود مشابه را با تقسیم کردن شکل به تعدادی قطعه خود مشابه با اندازه کوچکتر تعریف کنیم. ما بعد را به صورت log (# قطعه مشابه خود) / log (ضریب مقیاس در هر جهت فضایی) تعریف می کنیم. به عنوان مثال، ما می توانیم مربع واحد را به 4 مربع کوچکتر، هر یک از طول ضلع 1/2 تجزیه کنیم. یا می توانیم آن را به 25 مربع تجزیه کنیم که طول هر ضلع آن 1/5 باشد. در اینجا تعداد قطعات خود مشابه 4 (یا 25) و ضریب پوسته پوسته شدن 2 (یا 5) است. بنابراین، ابعاد یک مربع 2 است، زیرا log (4) / log (2) = log (25) / log (5) = 2. یا می توانیم آن را به 125 مکعب تجزیه کنیم که طول هر کدام 1/5 باشد. بنابراین، ابعاد یک مکعب log (8) / log (2) = log (125) / log (5) = 3 است.

همچنین می‌توانیم این تعریف را مستقیماً به (مجموعه نقاط سفید در) مثلث Sierpinski اعمال کنیم. ما می‌توانیم واحد مثلث سیرپینسکی را به 3 مثلث سیرپینسکی تجزیه کنیم که طول هر ضلع آن 1/2 است. بنابراین، بعد مثلث Sierpinski log (3) / log (2) ≈ 1. 585 است. بعد آن کسری است - بیشتر از یک پاره خط، اما کمتر از یک مربع! با هندسه اقلیدسی، بعد همیشه یک عدد صحیح است. با هندسه فراکتال، می تواند هر کسری باشد. فراکتال ها به طور گسترده ای برای توصیف اشیاء فیزیکی مانند خط ساحلی بریتانیا کاربرد دارند.

مقالات آموزش فارکس...
ما را در سایت مقالات آموزش فارکس دنبال می کنید

برچسب : نویسنده : بهزاد فراهانی بازدید : 35 تاريخ : شنبه 12 فروردين 1402 ساعت: 14:22