الرسم ثنائي الأبعاد 2-D Graphs في برنامج MATLAB

الرسم ثنائي الأبعاد 2-D Graphs

يتمتع برنامج MATLAB بقدرة فنية متميزة في رسم الأشكال ثنائية الأبعاد 2-D graphs والأشكال ثلاثية الأبعاد 3-d graphs علي حد سواء بكل سهولة ويسر ( والتي يصعب رسمها بإستخدام بقية لغات البرمجة ) بالإضافة إلي القدرة الفائقة للتحكم في خصائص هذه الأشكال الرسومية من خلال تغيير نمط ولون خط الرسم وإضافة عناوين للرسومات ووضع مسميات حول محور السينات X-Axis ومحور الصادات Y-Axis ووضع شبكة من الخطوط الأفقية والرأسية للرسم الناتج وكذلك كيفية إنشاء أكثر من رسمة فوق بعضها وكيفية إنشاء كل رسمة في عدة نوافذ رسم منفصلة وكيفية إنشاء عدة رسومات منفصلة في نافذة رسم واحدة وما إلي ذلك من خصائص سنتناولها حيث سنقوم بإستعراض أكثر أدوات الرسم إستخداما في برنامج MATLAB ونقوم بتحليلها ودراستها للحصول علي رسومات في بعدين Two Dimensional Graphs أو ثلاثة أبعاد Three Dimensional Graphs .

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

الرسومات ثنائية الأبعاد 2-D plotting :

الرسم الثنائي الأبعاد هو الرسم المرتبط بمحورين إحداثيين فقط أحدهما المحور الأفقي X-Axis والأخر المحور الرأسي Y-Axis .

وتعتبر الدالة plot من أشهر دوال البرنامج MATLAB إستخداما في رسم الأشكال ثنائية الأبعاد 2-2-D Plotting وتوجد لها العديد من الصور التي تختلف بإختلاف عدد ونوع المدخلات inpues ( مع العلم أن برنامج MATLAB يجبر المستخدم علي التمييز الدقيق بين المدخلات ) وفيما يلي شرح تفصيلي مدعم بالأمثلة المحلولة عن أشهر صور الدالة plot :

الصورة الأولي :

plot (indep_ver,dep_var)

plot (x,y)

في هذه الصورة قمنا بتمرير متغيرين (بشرط أن يكون لهما نفس الأبعاد ) إلي الدالة plot أحدهما x ويسمي متغير مستقل independent Variable أي أن قيم عناصره لا تحكمها علاقة والأخر y ويسمي متغير معتمد dependent Variable حيث تعتمد قيم عناصره علي قيم عناصر المتغير المستقل x .

وفي هذه الحالة ستقوم الدالة plot برسم قيم عناصر المتجه x وعلي المحور الأفقي مع قيم عناصر المتجه y المناظره لها علي المحور الرأسي ولتوضيح هذه الصورة نقوم بعمل مثال بسيط لكيفية رسم دالة Sine Wave الشهيرة كما يلي :

– قم بفتح ملف جديد من نوع M-file وقم بتعريف المتجهان x,y وتطبيق الصورة الأولي للدالة plot علي هذين المتجهين كما بالشكل التالي :

1- clc;clear;close all;

2- x=0:0.1:10; %Independent Variable

3- y=sin (x) ; %dependent Variable

4- plot (x,y) ;

5- title (‘plot of sine wave’) ;

شرح الكود البرمجي :

* في السطر الأولي قمنا بمسح محتويات نافذتي محرر الأوامر Command Window ومنطقة العمل Workspace وإغلاق جميع نوافذ الرسم المفتوحة سابقا .

* في السطر الثاني قمنا بإنشاء عدد من النقاط المتتالية بداية من 0 إلي 10 وبخطوة (+0.1 )وقمنا بتخزينها في المتجه x والذي يمثل المحور الأفقي للرسم البياني .

* في السطر الثالث قمنا بإنشاء متجه أخر y يتضمن القيم الناتجة عن حساب دالة الجيب sine لقيم النقاط المخزنة في المتجه x .

* في السطر الرابع قمنا برسم قيم عناصر المتجه y الناتجة عن حساب المعادلة الرياضية للدالة المثلثية sin(x) علي المحور الرأسي مع قيم عناصر المتجه x المناظرة لها علي المحور الأفقي بإستخدام الصورة الأولي من الدالة plot .

* في السطر الخامس قمنا بإضافة عنوان أعلي منطقة الرسم بإستخدام الأمر title .

تشغيل الكود البرمجي :

* قم بحذف الملف بإسم ‘sine_wave’ في الدليل الإفتراضي السابق تحديده لملفات برنامج MATLAB ثم أختر أمر run من قائمة Debug أو للتشغيل السريع أضغط علي مفتاح f5 من لوحة المفاتيح .

* ليقوم برنامج MATLAB بفتح نافذة الرسم ( إلا إذا كانت مفتوحة بالأصل نتيجة لأوامر سابقة فيقوم البرنامج بإزالة محتوياتها ورسم الشكل الجديد ) وفيها يتم رسم دالة Sine Wave الشهيرة بحيث يتم أولا رسم قيم عناصر المتجه y علي المحور الرأسي الناتجة عن حساب الصيغة الرياضية sin(x) ثم يتم توصيل هذه النقاط بشكل متسلسل لقيم عناصر المتجه y علي المحور الرأسي مع قيم عناصر المتجه x المناظرة لها علي المحور الأفقي كما في الشكل التالي :

MATLAB38_03

وفي هذه الرسمة يتم رسم دالة sin الشهيرة ولكن في هذا المثال تم استعمال القيم الافتراضية لخصائص الرسمة مثل المدي لمحاور الاحداثي السيني والصادي وكذلك المسافات بين علامات تدريجات المحاور ولون خط الرسمة ونوع الخط ألخ ….

وهذا ما سوف نتعلمه في الصور القادمة للدالة plot …

الصورة الثانية :

plot (x,y,x,w,x, ..)

تستخدم هذه الصورة لرسم أكثر من متغيرين في نفس نافذة الرسم وعلي نفس المحاور الإحداثية بحيث يتم رسم المتغير x علي المحور الأفقي مع المتغيرات الأخري y,z,w,… علي نفس المحور الرأسي حيث يتم رسم كل زوج من المتغيرات علي حدة ويقوم برنامج MATLAB بالتمييز بين هذه المنحنيات في نافذة الرسم من خلال إعطاء كل منحني لون مميز يختلف عن لون غيره من المنحنيات ولمزيد من الإيضاح تابع معي المثال التالي :

– قم بفتح ملف جديد من نوع M-file وقم بتعريف المتجهات x,y,z وتطبيق الصورة الثانية للدالة plot علي هذه المتجهات كما بالشكل التالي .

1 clc;clear;close all;

2 x=0:0.1:10; %Independent Variable

3 y=sin (x) ; %dependent Variable

4 z=cos (x) ; %dependent Variable

5 plot (x,y,x,z) ; %plot y & z vs. x

6 title (‘plot of sine & cosine waves’) ;

– قم بحفظ الملف بإسم ‘sine_cosine_waves1’ في الدليل الإفتراضي السابق تحديده لملفات برنامج MATLAB .

– اضغط علي المفتاح f5 من لوحة المفاتيح ليقوم برنامج MATLAB بفتح نافذة رسم جديدة وفيها يتم رسم منحنيين أحدهما خاص بدالة sine والأخر خاص بدالة cosine ويقوم البرنامج إفتراضيا بإعطاء كل منحني لون ونمط مميز يختلف عن لون ونمط المنحني الأخر ( ما لم يقوم المستخدم بتحديد مواصفات خطوط المنحنيين كلون ونوع وعلامات خطوط الرسومات ) كما في الشكل التالي :

MATLAB39_03

الصورة الرابعة :

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

plot (x,y, ‘string’)

في هذه الصورة قمنا بتمرير ثلاث متغيرات إلي الدالة plot وفي هذه الحالة ستقوم الدالة plot برسم عناصر المتجه x علي المحور الأفقي معغ عناصر المتجه y علي المحور الرأسي .

أما عن المتغير (الحرفي ) الثالث ‘string’ فنستطيع إستبداله من عنصر من ثلاث عناصر تتحكم بلون خط الرسمة (أزرق أو أحمر أو أخضر الخ..) ونوع خط الرسمة (خط متصل solid او خط منقط Dotted أو شرط صغيرة Dashed الخ …) ونوع علامة الرسمة ( علامة نقاط أو علامة دوائر أو علامة مربعات الخ … ) فمثلا عند تنفيذ البرنامج السابق ماعدا أمر الرسم ليصبح كما بالشكل التالي :

plot (x,y, ‘r-o’)

MATLAB40_03

ليقوم البرنامج برسم دالة Sine wave الشهيرة :

وهي عبارة عن رسمة بلون أحمر وخط متصل وعلامات علي شكل دوائر كما يمكن أيضا أن تظهر العناصر الثلاثة بأي ترتيب كما يلي :

plot (x,y, ‘or-‘)

ليقوم البرنامج برسم نفس الرسمة السابقة بغض النظر عن ترتيب عناصر المتغير الحرفي الثالث .

كما يمكننا تحديد ألوان وعلامات وأنماط خطوط عدة منحنيات معا في نفس الوقت كما يلي :

plot (x,y, ‘r-o’ ,x,z, ‘b:*’)

ليقوم البرنامج برسم منحنيين أحدهما يمثل دالة sine wave وهي عبارة عن رسمة بلون أحمر وخط متصل وعلامات علي شكل دوائر والأخر يمثل دالة cosine wave وهي عبارة عن رسمة بلون أزرق وخط منقط وعلامات علي شكل نجوم .

ملحوظات :

* يجب وضع المتغير الثالث (الذي يمثل مواصفات الرسم ) بين علامتي تنصيص Single Quotations Marks حيث أنه يمثل متغير حرفي .

* إذا قمنا بتحديد علامة معينة لرسمها ولم نحدد نوع خط الرسم سيقوم MATLAB برسم العلامات فقط حيث ان البرنامج لا يشترط دمج الثلاث خواص ( لون ونوع خط الرسومات وشكل علامات الرسومات ) معا في نفس نافذة الرسم .

* يمكنك الحصول علي العديد من القيم التي يمكن وضعها كعناصر تتحكم في لون وشكل الرسومات من خلال كتابة الأمر help polt داخل نافذة محرر الأوامر command window .

والجداول الثلاثة التالية تقوم بتوضيح مواصفات خطوط الرسومات المتاحة داخل برنامج MATLAB مثل ألوان colors وأنماط styles وعلامات markers خطوط الرسومات :

الرمز

Color

اللون (باللغة العربية)

b

blue

أزرق

g

Green

أخضر

r

red

أحمر

c

Cyan

سماوي

m

Magenta

بنفسجي

y

Yellow

أصفر

k

Black

أسود

w

White

أبيض

الرمز

Line style

نوع الخط (باللغة العربية)

solid

خط متصل

dashed

خط متقطع

:

dotted

خط منقط

.-

Dash-dot

خط – نقطة

الرمز

Marker

العلامة (باللغة العربية)

o

circle

دائرة

*

star

علامة *

.

Point

نقطة

+

Plus

علامة +

X

x-mark

علامة x

S

square

مربع

D

Diamond

معين

^

Triangle (up)

مثلث رأسه لأعلي

V

Triangle (down)

مثلث رأسه لأسفل

>

Triangle (right)

مثلث رأسه لليمين

<

Triangle (left)

مثلث رأسه لليسار

P

Pentagram

نجمة خماسية

H

hexagram

نجمة سداسية

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

الصورة الخامسة :

plot (…,’propertyName’,propertyValue,…)

تستخدم هذه الصورة للتحكم في بعض خصائص خط وعلامات الشكل المرسوم مثل سمك خط الرسم Line Width بإستخدام الخاصية MarkSize ولون إطار هذه العلامات Marker Edge color بإستخدام الخاصية MarkerEdge color واللون الذي يملأ علامات Marker Face Color خط الرسم باستخدام الخاصية MarkerFace Color .

ولتوضيح كيفية استخدام الصورة الخامسة للدالة plot قم بتحرير الأوامر التالية في نافذة محرر الأوامر Command Window كما يلي :

>> x = -pi : pi/10:pi;

>> y = tan (sin (x) ) – sin (tan (tan (x) ;

>> plot (x,y,’—rs’,’linewidth’,2, …

‘ MarkerEdgeColor’,’k’, …

‘ MarkerFaceColor’,’g’, …

‘ Markersize’,10)

ليقوم البرنامج برسم الشكل الناتج كما في الشكل التالي :

MATLAB41_03

حفظ الشكل المرسوم :

عند الرغبة في حفظ الشكل المرسوم قم باختيار الامر save من قائمة file الموجود في شريط الأدوات menu bar الموجود في نافذة الشكل المراد حفظه كما يمكنك حفظ الشكل من خلال الضغط علي مفتاحي ctrl+s من لوحة المفاتيح ليفتح البرنامج مربع حواري لاختيار اسم الشكل المراد حفظه مع ملاحظة ان البرنامج يقوم بإضافة الإمتداد (.fig) الي الاسم الذي ستحدده لملف الشكل المحفوظ .

والأن سنستعرض بعض الأوامر والدوال المبنية Built in functions داخل البرنامج والتي ستساعدنا كثيرا في تنظيم نافذة الرسم .

Related posts

2 Thoughts to “الرسم ثنائي الأبعاد 2-D Graphs في برنامج MATLAB”

  1. أشكركم على ما تفضلتم به من شرح مفصل لهذا الموصوع الذي كنت بحاجة ماسة اليه

    1. admin

      العفو الشكر لله

Leave a Comment