المجسمات الفراغية

لعلك تعرف أن المجسمات مثل المكعبات مثلاُ يتغير منظرها إذا نظرت إليها من زوايا متعددة ، بل الأمر يختلف إذا كان في الغرفة أو المكان مصدر ضوء حيث تشاهد أحد جوانب المكعب أكثر تألقاُ ولمعاناُ من شكلها الآخر وهذا ما تفعله لوجو مايكروسوفت ، ولوجو مايكروسوفت لديها حوالي 1024 سلحفاة يمكنك أن تستخدمهم ولكن إحدى تلك السلاحف تتحكم في مصدر الضوء وهي السلحفاة رقم -3 بينما السلحفاة رقم -1 هي التي تحدد الموضع الذي سوف تري أنت منه المجسم.

رسم المجسمات

 

والواقع أن المجسمات ترسم في الفراغ بنفس أوامر الفراغ ، بالإضافة لقليل من الأوامر الإضافية التي تساعد لوجو علي فهم الرسم ، فلكي تخفي خط أو سطح مخفي يجب تعريف السطح ، فالسطوح تملئ بمضلعات ، فقط تحتاج لتخبر لوجو متي يبدأ السطح ومتي تبدأ ، وإذا كنت تستخدم متجهات فقط لرسم مكعب ، فإن لوجو لا تعرف ما إذا كان له 6 جوانب مغلقة (مكعب مجسم) أو 4 مربعات مفتوحة من أعلي وأسفل ، فالمتجه وحده غامض بالنسبة للسطوح .

---

 

أوامر رسم المجسمات :

والأوامر التالية ضرورية لرسم المجسم :

 

 

  Polystart

  بداية سطح

يبدأ مضلع  – سطح- جديد  

  Polyend 

  نهاية سطح

ينهي تعريف المضلع-السطح- ويظهره

  Polyview

  رؤية سطح

يظلل و يظهر كل السطوح المعرفة     .

  Setturtle -3 

  اضبط الضوء

يستخدم  تلك السلحفاة لوضع مصدر الضوء

  Setlight

  الضوء

يستخدم لإظهار كيف تتلألأ الأشياء

 

ولكن هناك بعض القيود علي السطوح  Polygon Restrictions

1.    يجب أن يحوي الشكل 3 رؤوس علي الأقل

2.    المضلع يجب أن يكون محدبا.

3.    يجب أن يكون السطح مستوي ، ولا تستخدم أي من الأوامر  up, down, rr, lr  بين بدء تعريف المسطح  polystart  ونهايته  polyend   .

 

  

وفيما يلي توضيح للبند الأول :

  فالمثال التالي لا ينتج شئ لأنه عبارة قطعة مستقيمة : 

  Polystart

  perspective

  make "saveposxyz  posxyz

  fd 100

  rt 0.00000001

  fd 100

  setposxyz :saveposxyz

  polyend

 

 والشكل التالي ينتج سطح مثلث مظلل باللون الرمادي:

 

  Polystart

  perspective

  make "savepos posxyz

  fd 50

  fd 50

  rt 90

  fd 100

  setposxyz :saveposxyz

  polyend

 

 

---

 

ولكن ماذا نعني بكلمة سطح محدب؟

 

 خذ أي نقطتين داخل السطح وصل بينهما بخط مستقيم ، فإذا مر الخط بنقاط لا تنتمي للشكل ، فإنه ليس محدب .

  فالمثلثات والمربعات …. الخ محدبة . 

  حرف  E  أو حرف ى ليس محدب لأن التوصيل بين البداية والنهاية يمر بنقاط خارج الحرف . 

   

 فالسطر التالي ينتج سطح محدب :

 

 

  repeat 4 [fd 100 rt 90]

 

 

 

 والسطر التالي ينتج شكل غير محدب

 

 

  repeat 4 [fd 50 rt 90 repeat 3 [fd 25 lt 90] rt 180 fd 50 rt 90]

 

  و لو حاولت أن تستخدم ذلك السطح في رسم مجسم بتعديله كما بالبرنامج التالي:

to aaa

perspective

polystart

  repeat 4 [fd 50 rt 90 repeat 3 [fd 25 lt 90] rt 180 fd 50 rt 90] 

polyend

 

end

 

to bbb

repeat 4[aaa pu fd 125 down 90]

polyview

end

 

فسوف تحصل علي رسالة الخطأ التالية :

 

 

فعندما بدأت لوجو في رسم المسطح التالي فوجئت بوجود فراغات داخله .

والواقع  أنك المشكلة هي في سلسلة الأوامر   polyviewو polystart ,polyend  ، فلوحذفت تلك الأوامر فسوف تحصل علي الشكل الفراغي التالي :

 

 

---

و ماذا نعني بتسطح الشكل ؟

   

 ما يلي مقبولا لأنه لا يستخدم أمر الرفع والخفض والانحدار … بين تعريف المسطح ونهايته:

 

 

  repeat 4 [fd 100 rt 90]

 

 

 ما يلي غير مقبول :

 

 

 polystart repeat 4 [fd 50  rr  90 rt 90 repeat 3 [fd 25 lt 90] rt 180  lr  90 fd 50  rt 90] polyend

 

  فهو ينتج شكل يشبه المنضدة ، وهو لا يرسم في مستوي.

ولو حاولت تظليله فسوف يظلل ، ولكن جعله سطح لمكعب مثلا لا ينتج مجسم

  ملحوظة : علي البندين (2) ، (3):

 

 

 يمكنك التحايل علي القيدين 2 ، 3 بتجزيء الشكل لأجزاء مسطحة تلبي الشروط السابقة .

   فيمكنك أن تستخدم الدائرة والبيضاوي ، والأقواس.

 

 

 

---

أمثلة :

 مثال: يستخدم الدائرة

 

 to Perspectivecircle

perspective

make "append "false

  repeat 18 ~

     [

     polystart

     circle 80

     polyend

     rr 10

  polyview

end

 

 

  مثال (يستخدم الأقواس)

TO PerspectiveArc 

 perspective

  repeat 36 ~

     [

     polystart

     arc2 180 50

     RT 90

     FD 100

     RT 90

     polyend

     rr 10

     ]

  polyview

    end

  

---

    تطبيقات :

  الآن لنرسم مجسم المكعب :

to cub :size

perspective

 repeat 4[ square :size fd :size title up 90

polyview

 

end

to square :size

polystart

repeat 4[fd :size rt 90]

polyend

End

المكعب يتكون من 6 أوجه كلها مربعات و لكننا نرسم المكعب بأربعة مربعات فقط لماذا ؟

الاسطوانة :

to cylinder :hight :radius

 repeat 72 [rectangle :hight :radius rr 5]

polyview

 end

 

to rectangle :hight :width

polystart

repeat 2[fd :hight rt 90 fd :width rt 90]

polyend

end

 

الاسطوانة  تنشئ من دوران مستطيل حول طوله . حور البرنامج لتجعل الاسطوانة تنشئ من دوران المستطيل حول أحد محاوره

 

الهرم :

to phight

 localmake "ppp posxyz

localmake "angle 180/:n

localmake "radius :size/(2*sin :angle)

localmake "xypos list :radius  :hight

make "xypos lput 0 :xypos

setposxyz :xypos

setposxyz :ppp

end

 

to poly :n :size

repeat :n[fd :size rt 360/:n phight ]

end

 

to pyramid :n :hight :width

down 90

poly :n :width

end

pyramid 4 148 120 

فكر في تطوير البرنامج السابق لكي يرسم الهرم مجسماً

 

 

انقر الهرم لتشاهد البرنامج

 

 

 

 

 

قمة الهرم لم تضم الإحداثي العيني ، طور البرنامج ليأخذ في الاعتبار ذلك الإحداثي.

  ملحوظة : قبل أن تطبق الأمر Localmake لن يعمل 


 

Logo For All Home Page

Pc Logo Arabic Tutorials

MswLogo Arabic Tutorials

Turtle Tracks Arabic Version The Other Authors's WebSites
  Visual Basic For all Computer and Learning Learn Mathematics BadrStat For Statistical Analysis
 

أرسل رسالتك أو استفسارك الآن

يمكنك الآن أن ترسل ملاحظاتك و تعليقاتك مباشرة ، والبحث عن المواقع ذات الصلة 

 

حقوق الطبع والنسخ محفوظة للمؤلف

     آخر تعديل : الجمعة صفر 24, 1427 11:13:19 ص