أنت هنا:برمجها»اللغة ج»الدرس 13: الرسومات الهندسية
الدرس 13: الرسومات الهندسية الدرس 13: الرسومات الهندسية
قيم الموضوع
(2 أصوات)

نقدم لك في هذا المقال كيفية التعامل مع الأشكال الهندسية باستعمال مكتبة الرسومات للغة البرمجية ج. 

 


شاشة الرسم

سبق وذكرنا أن شاشة الرسم هي النافذة التي ترسم فيها الأشكال المختلفة بواسطة أوامر الرسم في لغة ج. ولهذه اللوحة أمر إحداثيات ديكارتية (س،ع) تحدد بواسطتها إحداثيات النقاط والأشكال المرسومة. ويقع مبدأ هذا الأمر في الزاوية السفلى اليسرى لهذه اللوحةويتجه المحور س نحو اليمين، بينما يتجه المحور ع نحو الأعلى، كما هو مبين في الشكل التالي.

معرفة أبعاد شاشة الرسم

يوفر الثابتين حدس و حدع المعرفين مسبقاً في لغة ج وسيلة لمعرفة القيم العظمى لإحداثيات النقاط في شاشة الرسم. ويعبر حدس عن أكبر قيمة لسينات شاشة الرسم، أما حدع فيعبر عن أكبر قيمة للعينات.

وتقدم لغة ج مجموعة من أوامر الرسم التي تمكن المبرمج من رسم أشكال عديدة في شاشة الرسم. وسنستعرض في الفقرات التالية هذه الأوامر وطريقة استخدامها.


أمر أرسم

تـستخدم أمر أرسم لرسم الأشكال الهندسية الأساسية في شاشة الرسم. لهذه الأمر أشكال متعددة تسمح برسم الأشكال الهندسية المختلفة.

أمر أرسم النقطة

يمكن رسم نقطة بواسطة الصيغة التالية لأمر أرسم:

أرسم النقطة <إحداثيات>

حيث تحدد الإحداثيات إحداثيات النقطة. فالأمر التالي يرسم في شاشة الرسم نقطة إحداثياتها (250 ،100):

أرسم النقطة (250 ،100 )

أمر أرسم مستقيم

يمكن رسم مستقيم بواسطة الصيغة التالية لأمر أرسم:

أرسم مستقيم من <إحداثيات> إلى <إحداثيات> [إلى <إحداثيات>]

وترسم هذا الأمر قطعة مستقيمة بدايتها هي النقطة المحددة في الإحداثيات الأولى (الإحداثيات التي تلي كلمة من)، ونهايتها النقطة المحددة في الإحداثيات الثانية. فالأمر التالي مثلاً:

أرسم مستقيم من (100 ، 300 ) إلى ( 400 ، 100)

يرسم مستقيماً من النقطة (300،100) إلى النقطة (100،400). كما في الشكل التالي.

ويمكن بواسطة إيعاز رسم واحد رسم سلسلة متصلة من القطع المستقيمة المتتالية - تكون بداية كل قطعة منها منطبقة على نهاية القطعة السابقة - وذلك بتحديد سلسلة النقاط التي تحدد نهايات القطع المستقيمة بعد الإحداثيات التي تحدد بداية القطعة الأولى. فالإيعاز التالي مثلاً:

أرسم مستقيم من (100،100) إلى (200،200) إلى (400،200) إلى (100،100)

يرسم ثلاثة مستقيمات متصلة تشكل مثلثاً رؤوسه النقاط (100، 100) و (150،150) و (200،150).كما في الشكل التالي:

أمر أرسم دائرة

يمكن رسم دائرة بواسطة الصيغة التالية لأمر أرسم :

أرسم دائرة مركزها <إحداثيات> قطرها <عبارة>

فالأمر التالي مثلاً ترسم دائرة مركزها النقطة (420،70) وقطرها 50:

أرسم دائرة مركزها (420،70) قطرها 50

أمر أرسم إهليلج

يمكن رسم إهليلج بواسطة الصيغة التالية لأمر أرسم :

أرسم إهليلج مركزه <إحداثيات> قطريه <إحداثيات>


فالأمر التالي مثلاً يرسم إهليلجاً مركزه النقطة (200،200) وقطره الكبير (باتجاه المحور س) 100 وقطره الصغير (باتجاه المحور ع) 50:

أرسم إهليلج مركزه (200،200) قطريه (100، 50)

أما الأمر التالي فيرسم إهليلجاً مركزه النقطة (200،200) وقطره الصغير (باتجاه المحور س) 50 وقطره الكبير (باتجاه المحور ع) 100.

أرسم إهليلج مركزه (200،200) قطريه (50 ، 100)

أمر أرسم مستطيل

يمكن رسم مستطيل بواسطة الصيغة التالية لأمر أرسم:

أرسم مستطيل من <إحداثيات> إلى <إحداثيات>

وتحدد الإحداثيتان رأسان متقابلان لهذا المستطيل. فالأمر التالي مثلاً :

أرسم مستطيل من (50 ، 60) إلى (100 ، 100)

يرسم مستطيلا أحد رؤوسه النقطة (50، 60) والرأس المقابل في النقطة (100،100) كما في الشكل التالي

أمر أرسم مثلث

يمكن رسم مثلث بواسطة الصيغة التالية لأمر أرسم:

أرسم مثلث رؤوسه <إحداثيات> <إحداثيات> <إحداثيات>

فالأمر التالي مثلاً يرسم مثلثاً رؤوسه هي النقاط (250 ، 100) (200 ، 160) (50 ، 70):

أرسم مثلث رؤوسه (250 ، 100) (200 ، 160) (50 ، 70)


تحديد لون الرسم

يمكن تحديد اللون الذي ترسم به الأشكال بواسطة الصيغة التالية لأمر أرسم:

أرسم باللون <ثلاثية>

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

وتتراوح قيمة سطوع اللون الأولي بين 0 (للسطوع المعدوم) و100 (للسطوع التام). ويكون اللون الناتج هو ناتج مزج الألوان الأولية الثلاثة بالنسب المحددة في الثلاثية. فتدرجات اللون الرمادي مثلاً هي مزيج من نسب متساوية من الألوان الأولية الثلاثة، واللون الأصفر مزيج متساو من اللونين الأخضر والأحمر ، أي أن ثلاثية اللون التي تحدده هي (100،100،0). ويمكن بهذه الطريقة الحصول على أي لون. ويبين الجدول التالي نسب الألوان الأساسية في الألوان الأكثر شيوعاً. كما يحتوي الملف ألوان الموجود في مكتبات لغة ج، انظر الملحق الثاني، على بدائل جاهزة تعرف الألوان الشائعة بحيث يمكن استخدام أسماء هذه البدائل بدلاً من تحديد ثلاثية اللون المطلوب.

اللون

نسبة اللون الأحمر

نسبة اللون الأخضر

نسبة اللون الأزرق

أسود

0

0

0

أبيض

100

100

100

رمادي

60

60

60

أحمر

100

0

0

أخضر

0

100

0

أزرق

0

0

100

أصفر

100

100

0

سيان

0

0

100

بنفسجي

100

0

100

سماوي

70

90

100

فستقي

65

100

65

برتقالي

100

45

15

بني

50

30

0

وعندما يجري اختيار لون الرسم بواسطة أمر أرسم يبقى هذا اللون ساري المفعول إلى أن يجري اختيار لون آخر في أمر لاحق. وتسمح لغة ج بتحديد اللون في أمر الرسم نفسه.

مثال

أرسم باللون (100 ، 0 ، 0) ، مستطيل من (10 ، 10) إلى (100 ، 100)

يرسم هذا البرنامج مستطيلاً باللون الأحمر رأسيه المتقابلين (10، 10) و (100، 100)، ويبقى اللون الأحمر هو لون الرسم في جميع أوامر الرسم التالية لهذا الأمر إلى أن يجري اختيار لون آخر.


أمر ألون

يستعمل أمر ألون لرسم الأشكال الهندسية المغلقة المملوءة باللون. ويسمح أمر ألون برسم الأشكال الهندسية التالية.

أمر ألون دائرة

يمكن استخدام الصيغة التالية لأمر ألون لرسم دائرة مملوءة:

ألون دائرة مركزها <إحداثيات> قطرها <عبارة>

مثلاً، يرسم البرنامج الصغير التالي دائرة يقع مركزها في منتصف لوحة الرسم وقطرها 30 نقطة، ومملوءة باللون الأحمر. أما محيط الدائرة فيرسم بلون الرسم الساري.

أدرج "ألوان"
ألون باللون الأحمر ، دائرة مركزها (حدس\2 ، حدع\2) قطرها 30

أمر ألون مستطيل

يمكن استخدام الصيغة التالية لأمر ألون لرسم مستطيل مملوء:

ألون مستطيل من <إحداثيات> إلى <إحداثيات>

يقوم البرنامج التالي برسم مستطيل أحد رؤوسه في النقطة (10،10) والرأس الآخر في النقطة (60، 40) مملوء باللون الأزرق.

أدرج "ألوان"
ألون باللون الأزرق
ألون مستطيل من (10 ، 10) إلى (60 ، 40)

أمر ألون إهليلج

يمكن استخدام الشكل التالي لأمر ألون لرسم إهليلج مملوء:

ألون إهليلج مركزه <إحداثيات> قطريه <إحداثيات>

يرسم هذا البرنامج إهليلجاً مركزه في منتصف ورقة الرسم وقطره الكبير (باتجاه س) 60نقطة، وقطره الصغير (باتجاه ع) 30 نقطة، مملوء باللون الأخضر ومحيطه مرسوم باللون الاحمر.كما في الشكل.

أرسم باللون (100،0،0)
ألون باللون (0،100،0) ، إهليلج مركزه (حدس\2،حدع\2) قطريه (60 ، 30)

أمر ألون مثلث

يمكن استخدام الشكل التالي لأمر ألون لرسم مثلث مملوء:

ألون مثلث رؤوسه <إحداثيات> <إحداثيات> <إحداثيات>

يرسم هذا البريمج مثلثاً متساوي الأضلاع رؤوسه النقاط:

(10،10) (110، 10) (60 ، جذر(1002-502)+10)

مملوء باللون البنفسجي وخطوطه مرسومة بلون الرسم الحالي. كما هو مبين في الشكل التالي.

أدرج "ألوان"
ألون باللون البنفسجي
ألون مثلث رؤوسه (10 ، 10) (110 ، 10) (60 ، جذر(100^2-50^2)+10)

تلوين شاشة الرسم

يمكن استخدام أمر ألون لتلوين شاشة الرسم بكاملها وذلك باستخدام الصيغة التالية لأمر ألون:

ألون [باللون <ثلاثية>] الورقة

تعمل هذه الأمر على تلوين الورقة (لوحة الرسمبكاملها باللون المحدد في الأمر.أما إذا لم يحدد اللون فتلون الورقة بلون التلوين الساري.

مثال- مزج الألوان الأساسية: يبين المثال التالي برنامجاً بسيطاً يمكن استخدامه لاكتشاف خصائص مزج الألوان الأساسية الثلاثة: الأحمر والأخضر والأزرق. يقرأ البرنامج ثلاث قيم تمثل نسب الألوان الأساسية الثلاثة ويقوم بتلوين شاشة الرسم باللون الناتج عن مزج هذه المركبات. يكرر البرنامج هذا الإجراء إلى أن يجري إدخال قيمة تزيد على المائة كأحد المركبات اللونية.

المتحول ح ، خ ، ز : صحيح
أكرر طالما صواب
{
  أكتب "أدخل مركبات اللون (الأحمر، الأخضر ، الأزرق) : "
  أقرأ ح ، خ ، ز
  إذا (ح>100) أو (خ>100) أو (ز>100) أنتهي
  ألون باللون (ح ، خ ، ز) ، الورقة
}


أمر أنقش

تستخدم أمر أنقش للكتابة في شاشة الرسم، وهي تشبه أمر أكتب في العديد من جوانبها.إلا أنها تسبب كتابة العبارات في شاشة الرسم بدلاً من لوحة الكتابة، والصيغة العامة لأمر أنقش هي:

أنقش [عند <إحداثيات>] <عبارة> [، <عبارة> …]

حيث تحدد الإحداثيات في هذه الأمر إحداثيات النقطة التي ستكتب عندها العبارة. وتكتب العبارة بحيث تكون الزاوية اليمنى العليا للمستطيل الحاصر لها عند النقطة المحددة في الأمر. ويمكن إسقاط الإحداثيات، عندئذ تكتب العبارة بدءاً من نهاية آخر عبارة كتبت بواسطة أمر أنقش. فإذا كان هذا هو أول تنفيذ لأمر أنقش في البرنامج، كتبت العبارة في الزاوية اليمنى العليا لشاشة الرسم.

يؤدي تنفيذ البرنامج التالي إلى ظهور العبارة ج-لغة البرمجة العربية عند النقطة (300، 150) كما هو مبين في الشكل.

أنقش عند (300 ، 150) "ج – لغة البرمجة العربية"


تمارين تطبيقية

التمرين 13.1

أكتب برنامجاً يرسم مستقيماً أفقياً على كامل عرض شاشة الرسم ويبعد عن حور السينات بمقدار 200 نقطة.

 


التمرين 13.2 

أكتب برنامجاً يرسم منحني الجيب ع م جب (سعلى كامل عرض شاشة الرسم. 

 


التمرين 13.3

أرسم مربع باستعمال المستقيمات فقط وارسم داخله دائرة كما هو مبين في الشكل التالي:

 


التمرين 13.4

أكتب برنامجاً يرسم منحني الجيب ع م جب (سعلى كامل عرض شاشة الرسمويخولنا رسم منحنيات أخرى مع إمكانية تكبير وسعها. 

 


التمرين 13.5

أكتب برنامجاً يمكّن مستخدمه من رسم دوائر مختلفة في شاشة الرسميدخل المستخدم في كل مرة مركز الدائرة وقطرها ويقوم البرنامج برسمهايكرر البرنامج نفسه إلى أن يقوم المستخدم بإدخالعدد سالب كقيمة لأحد، أو كلا، إحداثيتي مركز الدائرة.

 


التمرين 13.6 :الساعة الحائطية

قم بـإنجاز ساعة حائطية على هذا الشكل :



يجب على هذه الساعة أن تعمل وفق نظام الساعات المتعارف عليه بين الناس.

 


التمرين 13.7: حلزون أرخميدس

أكتب برنامجاً لرسم المنحني المعرّف بالمعادلة التالية في أمر إحداثيات قطبية (ر، يه):

ر= ثا × يه

حيث ثا ثابت اعتباطي.
يُعرَف هذا المنحني باسم حلزون أرخميدس، ويلتف المنحني حول مبدأ الإحداثيات بالمقدار يه÷(2×بي) مرة.
يجب على البرنامج أن يقرأ قيمة الثابت ثا، وعدد لفات الحلزون المرغوبة، وأن يرسم بعد ذلك المنحني الموافق لهاتين القيمتين.

الحل:

تعتمد إيعازات الرسم على أمر إحداثيات قانونية متعامدة (س،ع) مركزها منطبق على الزاوية السفلية اليسرى لشاشة الرسم. ولرسم منحنى معرف بمعادلة قطبية يجب تحويل الإحداثيات القطبية إلى إحداثيات متعامدة. فإذا كانت النقطة ن (رن، يهن) تنتمي إلى أمر الإحداثيات القطبية (ر، يه) التي يقع مركزها في النقطة (س0، ع0) بالنسبة لأمر الإحداثيات المتعامدة،فإن الإحداثيات المتعامدة (سن ، عن) لهذه النقطة تعطى بالعلاقتين:

سن = رن × تجب يه + س0

عن  = رن × جب يه + ع0

ولرسم المنحني ر = ثا × يه نتبع الخوارزمية التالية:

نبدأ بالقيمة يه =0

نكرر الخطوات 1،2،3،4 طالما أن يه < 2× بي× ن، حيث ن عدد لفات الحلزون المطلوب:

1- نحسب ر من العلاقة ر = ثا × يه

2- نحسب س،ع من العلاقتين:

س= ر× تجب يه + س0 ، ع = ر × جب يه + ع0

3- نرسم النقطة (س،ع) في شاشة الرسم

4- نزيد يه بمقدار صغير وليكن 0.01 راديان

ويبين الشكل التالي نتيجة تنفيذ هذا البرنامج.

 


التمرين 13.8: منحني الوردة

أكتب برنامجاً يرسم منحني الوردة في أمر الإحداثيات القطبية المعرف بالعلاقة:

ر = ثا × تجب (ن × يه)

يبين الشكل التالي نتيجة تنفيذ هذا البرنامج، من أجل ن = 8

 


التمرين 13.9: التسديد على هدف ثابت

أكتب برنامجاً يحاكي عملية إطلاق قذيفة إطلاقاً مائلاً بسرعة إطلاق سر وزاوية يه. يجب على البرنامج أن يقرأ في البدية بعد الهدف عن نقطة الإطلاق. يقوم البرنامج بعد ذلك بقراءة قيمة سرعة الإطلاق وزاويته، ثم يرسم مسار القذيفة. وفي حال أصابت القذيفة الهدف، يقوم البرنامج بإخبار المستخدم عن طريق كتابة عبارة مناسبة في لوحة الكتابة، وجعل شاشة الرسم تومض بلونين مختلفين فترة من الزمن. ويبين الشكل التالي مثلاً لتنفيذ هذا البرنامج.


تأليف

 

المؤلف الأصلي: الدكتورمحمد عمار السَلكة (دمشق - سوريا)

الموقع الشخصي: http://www.drsalka.com

البريد الإلكتروني: عنوان البريد الإلكتروني هذا محمي من روبوتات السبام. يجب عليك تفعيل الجافاسكربت لرؤيته.

 

ضبط بتصرف: محمد عبد الرحمان (الدار البيضاء - المغرب)


المراجع

http://www.jeemlang.com


 

أضف تعليقا


إصنعها يريد أن يتأكد أنك لست روبوتا، لذلك أحسب ما يلي:

كود امني
تحديث