ما در این فصل با هر آنچه که تا کنون آموخته ایم کمی سرگرم خواهیم شد.
این فصل شامل نمونههایی است که راههای جالبی را برای ترکیب همه چیزهایی که تاکنون آموختهاید برای ایجاد برنامههای جذاب نشان میدهد.
مربع های تو در تو
برنامه زیر چندین مربع تو در تو را در اندازه های مختلف با استفاده از حلقه رسم می کند:
“GraphicsWindow.BackgroundColor = “Black
“GraphicsWindow.PenColor = “LightBlue
GraphicsWindow.Width = 200
GraphicsWindow.Height = 200
For i = 1 To 100 Step 5
GraphicsWindow.DrawRectangle(100 – i, 100 – i, i * 2, i * 2)
EndFor
شکل ۱-۷ : مستطیل های تو در تو
دایره های تو در تو
مشابه برنامه قبل، این بار برنامه ای برای رسم دایره های تو در تو می نویسیم:
“GraphicsWindow.BackgroundColor = “Black
“GraphicsWindow.PenColor = “LightGreen
GraphicsWindow.Width = 200
GraphicsWindow.Height = 200
For i = 1 To 100 Step 5
GraphicsWindow.DrawEllipse(100 – i, 100 – i, i * 2, i * 2)
EndFor
شکل ۲-۷ : دایره های تو در تو
رنگ های تصادفی
این برنامه از عملیات GraphicsWindow.GetRandomColor برای تنظیم رنگ های تصادفی برای قلم و از Math.GetRandomNumber برای تنظیم مختصات x و y برای دایره ها استفاده می کند.
با ترکیب این دو عملیات می توان برنامه های جالبی را ایجاد کرد که هر بار که اجرا می شوند نتایج متفاوتی به دست می آورند.
برنامه زیر یک فراکتال مثلث ساده را با استفاده از اعداد تصادفی ترسیم می کند.
فراکتال یک شکل هندسی است که میتوان آن را به بخشهایی تقسیم کرد که هر کدام دقیقاً شبیه شکل والد خود هستند.
در این حالت، برنامه صدها مثلث را ترسیم می کند که هر کدام شبیه مثلث والد خود هستند.
از آنجایی که اجرای برنامه چند ثانیه طول می کشد، می توانید ترسیم مثلث ها را در حین شکل گیری ببینید.
با اجرای برنامه ، راحت تر به درک این مفهوم خواهید رسید.
“GraphicsWindow.BackgroundColor = “Black
x = 100
y = 100
For i = 1 To 100000
r = Math.GetRandomNumber(3)
ux = 150
uy = 30
If (r = 1) then
ux = 30
uy = 1000
EndIf
If (r = 2) Then
ux = 1000
uy = 1000
EndIf
x = (x + ux) / 2
y = (y + uy) / 2
GraphicsWindow.SetPixel(x, y, “LightGreen”)
EndFor
شکل ۴-۷ : فراکتال مثلثی
اگر میخواهید واقعاً نقطههایی را ببینید که به آرامی فراکتال را تشکیل میدهند، میتوانید با استفاده از عملیات Program.Delay یک تاخیر (برحسب میلی ثانیه) در اجرای حلقه ایجاد کنید.
عددی که به این عملیات می دهید، میزان تاخیر اجرای برنامه را برحسب میلی ثانیه مشخص می کند.
در اینجا برنامه تغییریافته با عملیات Program.Delay را مشاهده می کنید:
“GraphicsWindow.BackgroundColor = “Black
x = 100
y = 100
For i = 1 To 100000
r = Math.GetRandomNumber(3)
ux = 150
uy = 30
If (r = 1) then
ux = 30
uy = 1000
EndIf
If (r = 2) Then
ux = 1000
uy = 1000
EndIf
x = (x + ux) / 2
y = (y + uy) / 2
GraphicsWindow.SetPixel(x, y, “LightGreen”)
Program.Delay(2)
EndFor
افزایش عدد Program.Delay باعث تأخیر بیشتر در روند اجرای برنامه می شود. این موضوع را با اعداد مختلف تجربه کنید.
تغییر دیگری که می توانید در این برنامه ایجاد کنید این است که خط زیر را:
GraphicsWindow.SetPixel(x, y, “LightGreen”)
با خطوط:
()color = GraphicsWindow.GetRandomColor
GraphicsWindow.SetPixel(x, y, color)
جایگزین کنید.
این تغییر باعث می شود که برنامه، پیکسل های مثلث را با استفاده از رنگ های تصادفی ترسیم کند.