



آموزش برنامه نویسی متلب
موضوع:رسم نمودار سه بعدی در متلب
جلسه:هجدهم
مدرس : پدرام مشهدی زاده
متلب را ساده،آسان و شیرین بنوشید!!!
در جلسه شانزدهم و جلسه هفدهم با پرکاربردترین دستورات ترسیم نمودارهای دوبعدی آشنا شدیم. این جلسه به بررسی توابع و دستورات مختلف رسم نمودارهای سه بعدی می پردازیم.
- plot3(x,y,z) :
این دستور مشابه plot(x,y) بوده با این تفاوت که سه ورودی از نوع بردار می گیرد. این سه بردار هم طول بوده و حاوی مختصات نقاط در فضای سه بعدی می باشند. نقاط متناظر یک به یک در فضا ترسیم شده و سپس به یکدیگر وصل می گردند.
| t = linspace(0,10*pi,100); x = sin(t); y = cos(t); plot3(x,y,t) |
.jpg)
- zlabe(‘text’) :
مشابه حالت دوبعدی دستورات xlabel و ylabel برای تمام حالات سه بعدی نیز عمل می کنند. دستور zlabel هم به طریق مشابه عنوان برچسب محور قائم یا z را تعیین می کند.
نکته: دستورات رسم نمودارهای سه بعدی همگی در یک figure رسم می شوند. بنابراین دستورات گفته شده مرتبط با اعمال تغییرات در این پنجره مانند clf، title، legend، ،grid و ... نیز در این حالت به کارمی-روند.
برای تغییر زاویه دید نمودار سه بعدی به طرق مختلفی می توان عمل کرد. ساده ترین راه استفاده از ابزار rotate در قسمت نوار ابزار بالای پنجره ی figure است. اگر این گزینه فعال باشد، با کلیک راست روی نمودار پنجره زیر باز می شود:
.png)
گزینه های این پنجره برای نمایش دوبعدی نمودار با حذف هر یکی از محورها و یا برگشت به حالت اصلی نمایش است. برای مثال اگر بخواهیم نمودار را از بغل یعنی از صفحه x-z ببینیم، گزینه Go to X-Z view را انتخاب می کنیم:
.jpg)
اگر از بالا به شکل نگاه کنیم، طبیعی است که قفط یک دایره می بینیم.(امتحان کنید!)
- view([az el]) :
از این دستور هم برای انتخاب زاویه دید می توان استفاده کرد. بردار 2در1 ورودی این دستور حاوی زاویه-های azimuth، یعنی نسبت به صفحه X-Y، و elevation، نسبت به بخش منفی محور y، است.
| >>view([45 45]) |
.jpg)
برای رسم نمودارهای سه بعدی نیاز به داشتن مختصات یا توابع ایجادکننده آن ها داریم. توابعی در متلب وجود دارند که مختصات یا داده های برخی نمودارهای پرکابرد را با ابعاد دلخواه تولید می کنند. برای یادگیری و آشنایی با نحوه کار دستوراتی که در ادامه خواهیم گفت ابتدا با چند تا از این توابع آشنا می شویم:
| - [x y z] = peaks : |
این دستور مختصات یک تابع شبیه به توزیع گاوسی را تولید می کند. هر کدام از آرگومان های خروجی یک ماتریس مربعی با ابعاد 49*49 خواهدبود. از این مختصات برای نمایش نحوه کارکرد دستورات mesh و surf که در ادامه خواهیم گفت استفاده می توان کرد.
peaks(n) ماتریسی با ابعاد دلخواه n*n تولید می کند.
- [x y z] = sphere(n) :
مشابه قبل مختصات یک کره را برمی گرداند. n ابعاد ماتریس های خروجی را تعیین می کند.
- [x y z] = cylinder(r) :
این دستور نیز مختصات یک استوانه به شعاع r را برمی گرداند. ابعاد آرگومان های خروجی xو yو z برابر با 2*21 خواهدبود. در استوانه قاعد ه ای به شکل 20ضلعی منتظم دارد.
دستورات فوق را بدون آرگومان ورودی و خروجی نیز می توان به کاربرد. که در این صورت آن ها را با مقادیر پیش فرض رسم می کند:
| >>subplot(221),peaks >>subplot(222),sphere(10) >>subplot(223),cylinder(3) >>subplot(224),cylinder(sin(0:.1:pi)+2) |
[x y z] = cylinder(v) که در آن v یک بردار 1*n است، ماتریس های x و y و z n*21 تولید می کند که در آن هر سطر متناظر با یک سطح استوانه است. به مثال زیر برای بهتر روشن شدن موضوع دقت کنید:
>>cylinder([5 3]) |
.jpg)
| >>cylinder([5 3 1]) |
.jpg)
حال که این دستورات را یاد گرفتیم، به سراغ ادامه توابع رسم سه بعدی می رویم.
- mesh(x,y,z) :
تابع mesh یا شبکه (یا توری) ، شبکه ای سه بعدی از نقاط z را رسم می کند. z نقاطی در صفحه z می باشد که برحسب نقاطی که در x و y تعریف شده اند در فضای سه بعدی رسم می شوند. x و y می توانند بردارهای هم اندازه با هم و هم طول با z یا ماتریس های هم اندازه با z باشند.
اگر x و y بردار باشند، متلب برای رسم mesh ابتدا آن ها را در n سطر تکرار کرده (مانند repmat(x,n,1)) تا ماتریس های مربعی n*n ایجاد شود. پس n2 نقطه مخصات ایجاد می شود. سپس نقاط z در فضا به نقاط مجاور خود در راستای x و y وصل می گردند:
| i,j-1 | ||
| i+1,j | | ------- i,j ------ - | | i-1,j |
| i,j+1 |
| >>[x y z] = peaks; >>mesh(x,y,z) |
.jpg)
- meshz(x,y,z) :
علاوه بر شکل فوق دیواره هایی را پیرامون نمودار رسم می کند.
- meshc(x,y,z) :
در زیر نمودار یک نمودار counter، که بعدا توضیح داده خواهدشد، رسم می کند.
- surf() :
این دستور هم مانند دستور قبل عمل می کند. بنابراین ورودی ایی که برای mesh استفاده کردیم را برای این دستور هم می توان به کاربرد. این دستور که از نام آن نیز برمی آید برای ترسیم رویه های ریاضی استفاده می شود. در واقع شبکه ایجاد شده توسط mesh را توسط قابلیت هایی مثل رنگ کردن و ایجاد سایه و افکت به مانند یک رویه یا سطح ریاضی درمی آورد.
| >>[x y z] = peaks; >>surf(x,y,z) |
- surfc :
مانند meshc یک نمودار countour در زیر نمودار رسم می کند.
- shading arg :
حالت سایه در نمودار سطح ایجاد می کند. مقدار arg یکی از موارد زیر می تواند باشد:
• flat
• faceted
• interp
در مثال قبل این کد را اضافه می کنیم:
| >>shading flat |
.jpg)
- colormap arg :
نقشه رنگ نمودار را تعیین می کند. مقدار arg از یکی از موارد زیر می تواند انتخاب شود:
| HSV | Hot | Cool | jet |
| Spring | Summer | Autumn | Winter |
| Gray | Copper | Pink | lines |
- rotate3d :
حالت چرخش نمودار را فعال می کند.
- colorbar :
نقشه رنگ نمودار را کنار آن مشخص می کند:
| >>colormap winter >>colorbar |
- contour(z) :
نمودار دوبعدی contour از ماتریس z را رسم می کند. این دستور ماتریس z را مقادیر محور z یک نمودار سه بعدی فرض می کند. و خطوط منفرد یا ایزوله را رسم می کند. برای مثال این دستور را برای peaks به کار می بریم:
.jpg)
- contour3(x,y,z,n) :
نمودار contour را در فضای سه بعدی رسم می کند. n تعداد بخش های نمودار را تعیین می کند. در مثال قبل داریم:
| >>contour3(peaks,10) |
.jpg)
پیروز و موفق باشید
ادامه حیات سایت جاواپرو به حمایت مالی (دونیت) از طرف شما کاربر عزیز بستگی دارد.... |
جلسه هجدهم | رسم نمودار سه بعدی در متلب
فرمت:PDF (لطفا در صورت خرابی لینک دانلود گزارش بدید که لینک اصلاح کنیم)
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 10 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی می باشد
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690




![مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو [کلیک کنید]](https://dl.javapro.ir/image/marketing/banerday1403springboot.png)
























.png)
-min.png)
-min.png)
-min.png)


-min.png)









-min.png)

.jpg)


