الرسومات في ماتلاب 225-4

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

‫‪MATLAB‬‬ ‫البرمجة بلغة‬

‫انرسىماث في ماتالب‬
‫‪2‬‬

‫الدكتور المهندس محمد حبيب‬


‫هندسة معلوماتٌة – طبوغرافٌا – سنة ثالثة‬
‫‪1‬‬
‫رسم انشبكاث وانسطىح‬
‫• ٌمكننا تحدٌد السطح من خالل اإلحداثٌات ‪ z‬لنقاط الشبكة‬
‫المستوٌة ‪ x y‬باستخدام خطوط مستقٌمة تصل بٌن هذه النقاط‪.‬‬
‫• األمرٌن ‪ mesh‬و ‪ٌ surf‬سمحان برسم السطوح بالبعد الثالث‬
‫بحٌث أن ‪ٌ mesh‬سمح برسم السطوح الشبكٌة بحٌث ٌتم‬
‫تلوٌن الخطوط التً تصل بٌن النقاط المحددة بٌنما األمر ‪surf‬‬
‫ٌسمح بإظهار الشبكة وٌسمح بتلوٌن واجهات الشبكة المؤلفة‬
‫للسطح‬
‫• ٌتم تحدٌد األلوان باستخدام ‪ figure colormap‬و ‪figure‬‬
‫‪properties‬‬

‫‪2‬‬ ‫‪8‬شباط ‪2011‬‬


‫إظهار تابع بمتحىنيه‬
‫• إلظهار تابع بمتحولٌن )‪z=f(x,y‬‬
‫‪ .1‬نشكل مصفوفتٌن ‪ X‬و ‪ Y‬لألسطر واألعمدة ضمن مجال‬
‫التابع‬
‫‪ .2‬نستخدم ‪ X‬و ‪ Y‬من اجل تقدٌر المنحنً الخاص بالتابع‬
‫• نستخدم التابع ‪ meshgrid‬لتحوٌل المجال المكون من‬
‫شعاع أو شعاعٌن ‪ x‬و ‪ y‬إلى مصفوفتٌن ‪ X‬و ‪ Y‬من اجل‬
‫استخدام قٌم المتحوالت بحٌث ٌصبح سطور المصفوفة ‪X‬‬
‫هً نسخة من الشعاع ‪ x‬و أعمدة المصفوفة ‪ Y‬هً نسخة‬
‫من الشعاع ‪y‬‬

‫‪3‬‬ ‫‪8‬شباط ‪2011‬‬


‫ومىرج انتىابع‬
‫)‪ mesh(X, Y, Z‬حٌث )‪ٌ Z(x, y‬قدم سطح ثالثً األبعاد‬ ‫•‬
‫)‪ٌ surf(X, Y, Z‬قدم سطح شبٌه باألمر ‪mesh‬‬ ‫•‬
‫)‪ٌ [X, Y, Z] = cylinder(y, n‬سمح برسم المخروط‬ ‫•‬
‫االسطوانً المولد من السطح حٌث أن الرقم ‪ٌ n‬مثل عدد‬
‫النقاط الدائرة المولدة للسطح‬
‫)‪ٌ [X, Y, Z]= spherer(n‬عطً المصفوفة الممثلة لنقاط‬ ‫•‬
‫الكرة‬

‫‪4‬‬ ‫‪8‬شباط ‪2011‬‬


‫مثال‬
‫• ٌسمح المثال التالً بحساب ورسم المنحنً الثنائً األبعاد‬
‫‪ sin(r)/r‬بالنسبة لالتجاهٌن ‪ x‬و ‪y‬‬
‫• ‪R‬هوالبعد عن المركز الذي (مركز المصفوفة)‬
‫• استخدم األمر ‪ eps‬من أجل إضافة رقم صغٌر جدا لتجنب‬
‫نتٌجة عدم التعٌٌن الناجمة عن عملٌة التقسٌم ‪ 0/0‬فً‬
‫المركز‬

‫‪5‬‬ ‫‪8‬شباط ‪2011‬‬


‫انكىد في ماتالب‬
>> [X,Y] = meshgrid(-8:.5:8);
>> R = sqrt(X.^2 + Y.^2) + eps;
>> Z = sin(R)./R;
>> mesh(X,Y,Z,'EdgeColor','black')
>>

6 2011 ‫شباط‬8
‫انىتيجت‬
‫‪colormap‬‬ ‫تم استخدام القٌم االفتراضٌة‬
‫من اجل تلوٌن الشبكة‬
‫تم استخدام لون أحادي للشبكة من خالل الخاصة‬
‫‪1‬‬
‫‪EdgeColor‬‬
‫‪0.5‬‬

‫‪0‬‬

‫‪-0.5‬‬
‫‪10‬‬
‫‪5‬‬ ‫‪10‬‬
‫‪0‬‬ ‫‪5‬‬
‫‪0‬‬
‫‪-5‬‬ ‫‪-5‬‬
‫‪-10‬‬ ‫‪-10‬‬ ‫‪8‬شباط ‪2011‬‬
‫‪7‬‬
‫إظهار األجزاء انمخفيت‬
‫• األمر ‪ٌ hidden off‬سمح بإظهار األجزاء المخفٌة من‬
‫الشكل‬
‫‪1‬‬

‫‪0.5‬‬

‫‪0‬‬

‫‪-0.5‬‬
‫‪10‬‬
‫‪5‬‬ ‫‪10‬‬
‫‪0‬‬ ‫‪5‬‬
‫‪0‬‬
‫‪-5‬‬ ‫‪-5‬‬
‫‪-10‬‬ ‫‪-10‬‬

‫‪8‬‬ ‫‪8‬شباط ‪2011‬‬


‫تهىيه انسطىح انرباعيت‬
‫• من أجل تلوٌن السطوح الرباعٌة المشكلة من الشبكة‬
‫نستعمل األمر ‪ surf‬ولون السطح معرف بقٌمة ‪Z‬و نوع‬
‫‪ colormap‬كما هو موضح فً تتمة المثال‬
‫)‪>> surf(X,Y,Z‬‬
‫‪>> colormap hsv‬‬
‫‪>> colorbar‬‬

‫‪9‬‬ ‫‪8‬شباط ‪2011‬‬


‫وتيجت ‪surf‬‬

‫‪0.8‬‬
‫‪1‬‬

‫‪0.6‬‬
‫‪0.5‬‬

‫‪0.4‬‬
‫‪0‬‬

‫‪0.2‬‬

‫‪-0.5‬‬
‫‪10‬‬
‫‪0‬‬
‫‪5‬‬ ‫‪10‬‬
‫‪0‬‬ ‫‪5‬‬
‫‪0‬‬
‫‪-5‬‬ ‫‪-5‬‬ ‫‪-0.2‬‬
‫‪-10‬‬ ‫‪-10‬‬

‫‪10‬‬ ‫‪8‬شباط ‪2011‬‬


‫األنىان انمعتمذة ‪Colormaps‬‬
‫• مصفوفة ‪ m-by-3‬من األعداد الحقيقية بين ‪ 0.0‬و ‪ 1.0‬كل‬
‫سطر هو عبارة عن شعاع ‪ RGB‬يمثل لون واحد وأسماؤها‬
‫معرفة في ماتالب كما يلي‪:‬‬
‫•‬

‫‪11‬‬ ‫‪8‬شباط ‪2011‬‬


‫تغيير انشفافيت في األشكال‬
‫• ٌمكننا الحصول على تدرج فً مستوى شفافٌة السطوح‬
‫المرسومة عن طرٌق تغٌٌر قٌمة تدعى ‪ alpha‬مبنٌة على‬
‫قاعدة الشفافٌة ‪alphamap‬‬
‫• نتابع فً المثال السابق‬
‫)‪>> surf(X,Y,Z‬‬
‫‪>> colormap hsv‬‬
‫)‪>> alpha(.4‬‬

‫‪12‬‬ ‫‪8‬شباط ‪2011‬‬


‫وتيجت ‪alpha‬‬
‫• قٌم ‪ alpha‬تعبر عن‬
‫تدرج قٌم الشفافٌة من ‪:‬‬
‫‪ : 0‬شفافٌة كاملة‬
‫‪ : 1‬عدم شفافٌة‬

‫‪13‬‬ ‫‪8‬شباط ‪2011‬‬


‫تطبيق اإلضاءة عهى انسطخ‬
‫• تستخدم تقنٌة اإلنارة على السطوح عن طرٌق استخدام‬
‫مصدر ضوئً من جهة (كامٌرا) مما ٌسمح بإظهار األبعاد‬
‫بشكل ممٌز‬
‫• فً المثال نفسه سنستخدم اللون األحمر ونلغً خطوط‬
‫الشبكة ونضع مصدر ضوئً على ٌسار الكامٌرا‬
‫)'‪>> surf(X,Y,Z,'FaceColor','red','EdgeColor','none‬‬
‫‪>> camlight left; lighting phong‬‬

‫‪14‬‬ ‫‪8‬شباط ‪2011‬‬


‫وتيجت اإلضاءة‬
‫• الكامٌرا هً المكان فً الفراغ والذي ننظر منه إلى الشكل‬

‫‪15‬‬ ‫‪8‬شباط ‪2011‬‬


15 ‫تطبيق‬
ً‫ نقطة متساوٌة التباعد ف‬25 ‫• ارسم المخروط المولد من‬
Y ‫ و‬X ‫االتجاهٌن‬
>> x = linspace(0,2,50);
>> y = x;
>> [x,y,z] = cylinder(y,25);
>> surf(x,y,z)
>> title('Cylinder')
>> xlabel('x'); ylabel('y');zlabel('z')

16 2011 ‫شباط‬8
‫وتيجت انرسم‬
‫‪Cylinder‬‬

‫‪1‬‬

‫‪0.8‬‬

‫‪0.6‬‬
‫‪z‬‬

‫‪0.4‬‬

‫‪0.2‬‬

‫‪0‬‬
‫‪2‬‬
‫‪1‬‬ ‫‪2‬‬
‫‪0‬‬ ‫‪1‬‬
‫‪0‬‬
‫‪-1‬‬ ‫‪-1‬‬
‫‪y‬‬ ‫‪-2‬‬ ‫‪-2‬‬
‫‪x‬‬

‫‪17‬‬ ‫‪8‬شباط ‪2011‬‬


16 ‫تطبيق‬
y ‫• استخدم التطبٌق السابق من اجل السطح المولد بتغٌٌر قٌم‬
‫إلى‬
>> x = linspace(0,2,50);
>> y = x.^2;
>> [x,y,z] = cylinder(y,25);
>> surf(x,y,z)
>> title('Cylinder with quadratic surface')
>> xlabel('x'); ylabel('y');zlabel('z')

18 2011 ‫شباط‬8
16 ‫وتيجت انتطبيق‬
Cylinder with quadratic surface

0.8

0.6
z

0.4

0.2

0
4
2 4
0 2
0
-2 -2
y -4 -4
x

19 2011 ‫شباط‬8
17 ‫تطبيق‬
mesh ‫ و‬surf ‫• أرسم الكرة االفتراضٌة باستخدام األوامر‬
>> subplot(1,2,1)
>> [x,y,z] = sphere;
>> surf(x,y,z)
>> axis equal
>> subplot(1,2,2)
>> mesh(x,y,z)
>> axis equal

20 2011 ‫شباط‬8
‫وتيجت انتطبيق ‪16‬‬

‫‪1‬‬ ‫‪1‬‬

‫‪0.5‬‬

‫‪0‬‬ ‫‪0‬‬

‫‪-0.5‬‬

‫‪-1‬‬ ‫‪-1‬‬
‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬
‫‪-1 -1‬‬ ‫‪-1 -1‬‬

‫‪21‬‬ ‫‪8‬شباط ‪2011‬‬


‫أوامر انتعامم مع انسطىح‬
‫أوامر التعامل مع السطوح وإسقاطاتها حسب زواٌا الرؤٌة المطلوبة‬ ‫•‬
‫األمر )‪ٌ [X, Y, Z] = ellipsoid(Xc, Yc, Zc, Xr, Yr, Zr, n‬سمح بالحصول‬ ‫•‬
‫على ثالثة مصفوفات ‪ X, Y, Z‬تمثل اإلحداثٌات ‪ 3-D‬للجسم المدروس‬
‫األمر )‪ٌ waterfall(x, y, z‬سمح بالحصول على نفس نتائج األمر ‪ mesh‬ولكن‬ ‫•‬
‫خطوط الشبكة مرسومة باالتجاه ‪ x‬فقط‬
‫األمر ‪ٌ shading‬سمح بتغٌٌر األلوان الناجمة عن األوامر ‪ surf, mesh‬و‬ ‫•‬
‫‪interp,‬‬
‫األمر )‪ٌ contour(x, y, z‬سمح بالحصول على رسم خطوط متساوٌة االرتفاع‬ ‫•‬
‫بالنسبة للشكل‬
‫األمر )‪ٌ view(∅xy, ∅z‬سمح بالحصول على مسقط للشكل بزاوٌة ‪ ∅xy‬فً‬ ‫•‬
‫المستوي باتجاه عكس الساعة ومقدرة بالدرجات‬

‫‪22‬‬ ‫‪8‬شباط ‪2011‬‬


‫تطبيق ‪18‬‬
‫• فً األمثلة التالٌة سنرسم باالستعانة ببعض هذه األوامر‬
‫التابع‪:‬‬

‫وذلك ضمن المجالٌن‬


‫;)‪x = linspace(-13,13,100‬‬
‫;‪y = x‬‬
‫;)‪[X,Y] = meshgrid(x,y‬‬
‫;‪Z = sqrt(X.^2+Y.^2).*sin(2.*Y)./Y‬‬

‫‪23‬‬
‫انشكم األول‬
figure(1) % surf plot
surf(X,Y,Z)
shading interp;
title('surf plot');
box on; xlabel('X'),ylabel('Y'), zlabel('Z')

24 2011 ‫شباط‬8
‫وتيجت انشكم األول‬
‫‪surf plot‬‬

‫‪30‬‬

‫‪20‬‬

‫‪10‬‬
‫‪Z‬‬

‫‪0‬‬

‫‪-10‬‬
‫‪20‬‬
‫‪10‬‬ ‫‪20‬‬
‫‪0‬‬ ‫‪10‬‬
‫‪0‬‬
‫‪-10‬‬ ‫‪-10‬‬
‫‪Y‬‬ ‫‪-20‬‬ ‫‪-20‬‬
‫‪X‬‬

‫‪25‬‬ ‫‪8‬شباط ‪2011‬‬


‫انشكم انثاوي‬
figure(2) % shaded surf plot
surf (X,Y,Z)
shading faceted
title ('shaded surf plot');
box on
xlabel('X'),ylabel('Y'), zlabel('Z')

26 2011 ‫شباط‬8
‫وتيجت انشكم انثاوي‬
shaded surf plot

30

20

10
Z

-10
20
10 20
0 10
0
-10 -10
Y -20 -20
X

27
‫انشكم انثانث‬
figure(3) % view plots subplot(2,2,3)
subplot(2,2,1) surf(X,Y,Z)
surf(X,Y,Z) shading faceted
shading faceted view(-37.5-90,0)
view(0,0); xlabel('X'),ylabel('Y'), zlabel('Z')
xlabel('X'),ylabel('Y'), zlabel('Z') subplot(2,2,4)
subplot(2,2,2) surf(X,Y,Z)
surf(X,Y,Z) shading faceted
shading faceted view(-37.5-45,0)
view(90,0) xlabel('X'),ylabel('Y'), zlabel('Z')
xlabel('X'),ylabel('Y'), zlabel('Z')

28
‫وتيجت انشكم انثانث‬

‫‪29‬‬
‫انشكم انرابع‬
figure(4) % contour plot
contour(X,Y,Z,20);axis square;
box on; shading interp;grid off;
title('contour plot')
xlabel('X'),ylabel('Y'), zlabel('Z')

30 2011 ‫شباط‬8
‫وتيجت انشكم انرابع‬
‫‪contour plot‬‬

‫‪10‬‬

‫‪5‬‬

‫‪0‬‬
‫‪Y‬‬

‫‪-5‬‬

‫‪-10‬‬

‫‪-10‬‬ ‫‪-5‬‬ ‫‪0‬‬ ‫‪5‬‬ ‫‪10‬‬


‫‪X‬‬

‫‪31‬‬ ‫‪8‬شباط ‪2011‬‬


‫انشكم انخامس‬
figure(5) % contour3 plot
contour3(X,Y,Z,20);axis on;grid off
axis square;box on;
shading interp;
title('contour3 plot');
xlabel('X'),ylabel('Y'), zlabel('Z')

32 2011 ‫شباط‬8
‫وتيجت انشكم انخامس‬
‫‪contour3 plot‬‬

‫‪25‬‬

‫‪20‬‬

‫‪15‬‬

‫‪10‬‬
‫‪Z‬‬

‫‪5‬‬

‫‪0‬‬

‫‪-5‬‬

‫‪10‬‬
‫‪5‬‬ ‫‪10‬‬
‫‪0‬‬ ‫‪5‬‬
‫‪-5‬‬ ‫‪0‬‬
‫‪-5‬‬
‫‪-10‬‬ ‫‪-10‬‬
‫‪Y‬‬ ‫‪X‬‬

‫‪33‬‬
‫وظيفت‬
‫أكتب برنامجا فً ماتالب ٌسمح برسم التوابع التالٌة ‪:‬‬ ‫•‬
‫)‪sin(x‬‬ ‫•‬
‫)‪cos(x‬‬ ‫•‬
‫)‪sin(x)+cos(x‬‬ ‫•‬
‫)‪sin(x)−cos(x‬‬ ‫•‬
‫مع مراعاة ما ٌلً ‪:‬‬ ‫وذلك ضمن المجال‬ ‫•‬

‫‪34‬‬ ‫‪8‬شباط ‪2011‬‬


‫شروط انىظيفت‬
‫استخدم ‪ 20‬نقطة لرسم التوابع‬ ‫•‬
‫أعط اسم للمحور ‪x‬وللمحور ‪y‬‬ ‫•‬
‫اختر لون و رمز طباعً وخط معٌن لكل منحن‬ ‫•‬
‫ارسم التوابع ضمن إطار وبدون إطار مع شبكة وبدون شبكة‬ ‫•‬
‫ارسم )‪ plot (x, y‬للتابعٌن معا‬ ‫•‬
‫حدد المجال بالقٌمة‬ ‫•‬
‫احذف المحورٌن‬ ‫•‬
‫أضف تعرٌف نصً لكل من التوابع السابقة‬ ‫•‬
‫أضف ‪ legend‬ومن ثم امسح ‪legend‬‬ ‫•‬
‫ارسم المنحنٌات السابقة ضمن نوافذ فرعٌة باستخدام األمر ‪subplot‬‬ ‫•‬
‫واألمر ‪stem‬‬
‫استخدم األمر ‪ stairs‬لرسم التابع )‪ sin(x‬والتابع )‪ cos(x‬بشكل منفصل‬ ‫•‬
‫‪35‬‬ ‫‪8‬شباط ‪2011‬‬

You might also like