کامپیوتر و IT و اینترنتآموزشعلوم مهندسی ریاضیسایرعلوم پایه

آموزش MATLAB: فصل دوازدهم، نمودارهای سه بعدی

صفحه 1:
فصل دوازدهم: نمودارهای سه‌بعدی MATLAB كلاس اموزشى

صفحه 2:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۱- خمهای فضایی- تابع 0۱013 با استفاده از تابع 01083 در متلب می‌توان یک منحنی را در فضای سه‌بعدی ترسیم از این تابع بسیار شبیه تابع 010 است. جز اپنکه بازای هر 5 2 كرد روش استفا متحتی به سه بردار هم طول نباز است. مثال: رسم یک فنر با شعاع برابر با یک: 2۱ ع 1 )ماد دلا ‎z=cos(t)‏

صفحه 3:
فص دوازدهم نمودا ‎gk‏ سه‌بعدی ۱۱-۱- خمهای فضایی دامه ‎>>t=0: pi/50:10*pi;‏ >>plot3(sin(t) , cos(t) , t); xlabel(‘sin(x)’); ylabel(‘cos(x)’); zlabel(‘x’)

صفحه 4:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۲-تغییر زاویه دید با استفاده از دکمه فشاری 310 ۵1۵16 بر روی هر پنجره شکل متلب و یا با استفاده از دستور ۷16۷۷ می توان زاویه دید را تغییر داد. همچنین در موی ۲0015 با استفاده از زیرمنوهای ۱۷0110 2۵۳06۲3 می توان در فضای سه‌بعدی خركت كرد شکل کلی استفاده از دستور ۷16۷۷ بصورت زیر است: ‎view([az , el])‏ که در ‎abl, oy!‏ 82 و 6 بترتیب زاویه دوربین نسبت به صفحه ۲۷ و بخش منفی محور ۷ اسکد

صفحه 5:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۳ -نمودارهای شبکه‌ای: توابع ۳۵5/۱2 ,۳۵6۱ ,۲2۵5۲ با استفاده از این توابع می‌توان سطوح شبکه‌ای(با توری) ایجاد کرد.شکل کلی استفاده از تابع بصورت زیر mesh(x,y,z) ‏می‌باشد. بنابراین لازم است که 2 یک‎ V 9 X ‏که در این رابطه 2 تابعی دو متفیره از متغیرهای‎ ‏مائریس دو بعدی باشد که تعداد سطرهای آن برابر با تعداد عناصر ۷ و تعداد ستونهایش‎ ‏برابر با تعداد عناصر ۱ باشد. ۱ و ۷ باید بردار باشند اگرچه می توانند ماتریسهایی هم‌بعد‎ ‏نیز باشند بدینصورت که بردار ا به تعداد عتاصر بردار ۷ بصورت سطری تکرار شود و بردار‎ ‏به تعداه عناصر 2 بصورت ستونی تکرار گردد. که در اینصورت دو ماتریس هم‌بعد‎ ‏خواهیم داشت. تابع ۲۱65۱۱0۲0 می تواند این عمل را انجام دهد:‎ [x_new,y_new]=meshgrid(x,y); ‏تابع 165/7 علاوه بر نمودار شبکه‌ای» نمودارهای تراز را نیز رسم می‌کند.‎ ‏تابع 11165132 ديوارههايى را در يايين نمودار به سمت صفحه ل[-لا رسم مى كند.‎

صفحه 6:
دوازد: دارهای سه‌بعدی ۱-۲ موه رهای-شبکه‌ای- انامه مثال ۱: تابع 06815 یکی از توابع متلب است که یک مدل ریاضی از پیش تعریف شده را ایجاد می‌کند: ‎y,z]= peaks(30);‏ ۷] << ‎mesh(x,y,z);‏ <<

صفحه 7:
دوازد دارهای سه‌بعدی .2 مثال ۲ : رسم یک تابع دو بعدی به فرمول 2<5[۳0)۳(/۳ که (2 ۷ + 2 )۲5۵۲۲ ‎>>x=-7.5: 0.5: 7.5; y=x;‏ ‎[x_new,y_new]=meshgrid(x,y);‏ >> ‎r= sqrt(x_new.*2 + y new.*2) + eps;‏ >> ‎mesh(x,y,z);‏ ايا (2 , ‎>>z=sin(r) ./ r; mesh(x_new , y_new‏

صفحه 8:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۳ -نمودارهای شبکه‌ای- ادامه- به صورت پیش‌فرض متلب نقاطی از نمودار سه‌بعدی که پشت نقاط جلوبی قرار گرفته‌اند را مخفی می‌کند. با استفاده از تابع 7 می‌توان این رفتار را تغییر داد: ‎>>hidden off‏ ‎hidden on‏ >> ‎hidden‏ >>

صفحه 9:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۴- نمودارهای رویه: ۲۴لاگو 5۱1۲۲1 و ۳۲لا تفاوت نمودارهای رویه با نمودارهای شبکه‌ای آن است که در اینجا بجای خطوط شبکه‌ای. وصله‌ها یا فواصل بین شبکه‌ها ترسیم می‌گردد. تابع 501۲۴ دقیقا مانند تابع ۲۱65/۱ بکار برده می‌شود. تابع ۲1 ]ما5 علاوه بر تواناییهای تابع ۴ ]ما5 می‌تواند خصوصیات نوردهی شیء سه‌بعدی را نیز تنظیم کند. از قبیل جهت منبع نوری و خصوصیات انعکاسی شیء تابع 5۱1۲۴ مانند تابع ۲۱65/1 عمل می‌کند

صفحه 10:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۴- نمودارهای رویه-ادامه shading at با استفاده از تابع ‎Shading‏ می‌توان نوع سایه‌رنگ نمودار را تعیین کرد. این تابع باید پس از یکی از توابع ۴ ]ما5 بیاید و با یکی از شه پارامتر زیر قابل فراخوانی است: shading flat shading interp shading faceted

صفحه 11:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۴- نمودارهای رویه-ادامه تابع ‎:colormap‏ ‏با استفاده از اين تابع می‌توان رنگهای بکار برده شده برای ترسیم نمودار رویه را تعریف کرد تنها پارامتر مورد نیاز می‌تواند یکی از ثابتهای زیر باشد: hsv, cool , hot, prism, gray

صفحه 12:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۵- چرخش دوربین در فضای سه بعدی با استفاده از تابع 81100۲01 می‌توان پس از رسم نمودار سه‌بعدی. زاویه دید دوربین نسبت به شیء را تغفییر داد: ‎camorbit(theta, phi)‏ ۵ زامبه چرخشلفقی [01: زاویه چرخش‌عمودی و یا می‌توانید از این فرم تابع استفاده کنید: :(محور > ‎camorbit(theta, phi,->‏ آرگومان سوم محوری است که چرخش حول آن انجام می‌شود را مشخص می‌کند که به صورت پیش‌فرض محور 2 است.

صفحه 13:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۵- چرخش دوربین در فضاى سه بعدى ادامه... متال: ‎surf(peaks)‏ ‎axis vis3d‏ ‎axis off‏ ‎for i=1:360‏ ‎camorbit(2,0,'data')‏ ‎drawnow‏ ‎end‏

صفحه 14:
۱۱-۶- تعیین موقعیت دوربین به منظور تعیین موقعیت دوربین می‌توان از تابع ۲۵10۳005 استفاده کرد: آرگومازورودعلیرتابع موقعیندوربینا در فضای([005)]7,۷,2 62۳0 مثال: ‎surf(peaks)‏ ‎axis vis3d off‏ ‎for x = -200:5:200‏ ‎campos([x,5,10])‏ ‎drawnow‏ ‎end‏

صفحه 15:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۷- نمایش میله‌رنگ با استفاده از تابع 010۲03۳ می‌توان پس از نمایش نمودار, رنگهای بکار برده شده در آن را بصورت یک میله‌رنگ در کنار نمودار ذ ایش داد: ‎surf(peaks)‏ >> ‎colorbar‏ >> اعداد نمایش داده شده در کنار میله‌رنگ مقداری را که هر رنگ به آن اشاره می‌کند(به صورت پیش‌فرض مقدار 2) را نمایش می‌دهد.

صفحه 16:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۸- نمودارهای تراز-00۳1011۲3 , ‎contour‏ نمودارهای تراز خطوط و منحنی‌های بسته‌ای می‌باشند که برای نمایش ارتفاع‌های مختلف یک نمودار سه‌بعدی. در فضای دوبعدی یا سه‌بعدی بکار برده می‌شوند. در این نمودارهاء نواحی هم‌ارتفاع توسط خطوطی به یکدیگر متصل می‌شوند. نحوه استفاده از توابع 60۳0۱0۴ و 60۱۲0۱1۲3 نیز دقیقا شبیه تابع 5/۲ است. مثال: ‎[c,h] = contour(peaks); clabel(c,h), colorbar‏

صفحه 17:
فص دواز دهم نمودا ‎gla‏ سه‌بعدی ۱۱-۹ تابع 060۱0۴ این تابع داده‌های مربوط به یک نمودار سه‌بعدی را در فضای دوبعدی رسم می‌کند و برای نمایش ارتفاع(مقدار 2) از تغییرات رنگ استفاده می‌نماید. نتبجه حاصل از این تابع» مشابه تصویر از بالای تابع 5۱1۲۴ است. مثال ۱: ‎>>pcolor(peaks)‏ ‏مثال ۲ ‎t=tril(ones(10));‏ ‎ts=[t,flipIr(t)];‏ ‎tss=[flipud(ts);ts];‏ ‎pcolor(tss); colormap(gray(2))‏

صفحه 18:
فصل_دوازدهی: نمودارهای سه‌یعدی ۱۱-۹- اجرای برنامه‌های نمایشی متلب در زمینه ترسیم سه‌بعدی 0 های5 3۳۵۵/۱ در متلميلهنماى سیر خوبی رای آموزش‌قابلیتهایگ ولفیکیتلب مییاشد لینپرنامه‌ها از منوی 510۲ متلبهر شاخه 6۲۵0۳65 <-26۳00] در ‎apn‏

فصل دوازدهم: نمودارهای سه‌بعدی کالس آموزشی فصل دوازدهم :نمودارهاي سه‌بعدي -۱۱-1خمهاي فضايي -تابع plot3 با استفاده از تابع plot3در متلب مي‌توان يک منحني را در فضاي سه‌بعدي ترسيم کرد .روش استفاده از اين تابع بسيار شبيه تابع plotاست .جز اينکه بازاي هر منحني به سه بردار هم‌طول نياز است. مثال :رسم يک فنر با شعاع برابر با يک: ‏tR ‏x=t )y= sin(t )z=cos(t نمودارهاي سه‌بعدي:فصل دوازدهم ادامه- خمهاي فضايي-۱۱-1 >>t=0: pi/50:10*pi; >>plot3(sin(t) , cos(t) , t); xlabel(‘sin(x)’); ylabel(‘cos(x)’); zlabel(‘x’) فصل دوازدهم :نمودارهاي سه‌بعدي -1۱-2تغيير زاويه ديد با استفاده از دکمه فشاري Rotate 3Dبر روي هر پنجره شکل متلب و يا با استفاده از دستور viewمي توان زاويه ديد را تغيير داد .همچنين در منوي Toolsبا استفاده از زيرمنوهاي Camera Motionمي توان در فضاي سه‌بعدي حرکت کرد. شکل کلي استفاده از دستور viewبصورت زير است: )]view([az , el که در اين رابطه azو elبترتيب زاويه دوربين نسبت به صفحه xyو بخش منفي محور yاست. فصل دوازدهم :نمودارهاي سه‌بعدي -1۱-3نمودارهاي شبکه‌اي :توابع mesh, meshc, meshz با استفاده از اين توابع مي‌توان سطوح شبکه‌اي(يا توري) ايجاد کرد.شکل کلي استفاده از تابع meshبصورت زيراست: )mesh(x,y,z که در اين رابطه zتابعي دو متغيره از متغيرهاي xو yمي‌باشد .بنابراين الزم است که zيک ماتريس دو بعدي باشد که تعداد سطرهاي آن برابر با تعداد عناصر yو تعداد ستونهايش برابر با تعداد عناصر xباشد x .و yبايد بردار باشند اگرچه مي توانند ماتريسهايي هم‌بعد نيز باشند بدينصورت که بردار xبه تعداد عناصر بردار yبصورت سطري تکرار شود و بردار yبه تعداد عناصر xبصورت ستوني تکرار گردد .که در اينصورت دو ماتريس هم‌بعد خواهيم داشت .تابع meshgridمي تواند اين عمل را انجام دهد: ;)[x_new,y_new]=meshgrid(x,y تابع meshcعالوه بر نمودار شبکه‌اي ،نمودارهاي تراز را نيز رسم مي‌کند. تابع meshzديواره‌هايي را در پايين نمودار به سمت صفحه x-yرسم مي‌کند. فصل دوازدهم :نمودارهاي سه‌بعدي -1۱-3نمودارهاي شبکه‌اي -ادامه- مثال : 1تابع peaksيکي از توابع متلب است که يک مدل رياضي از پيش‌تعريف شده را ايجاد مي‌کند: ;)>> [x ,y,z]= peaks(30 ;)>> mesh(x,y,z نمودارهاي سه‌بعدي:فصل دوازدهم - ادامه-نمودارهاي شبکه‌اي-1۱-3 r=sqrt(X^2 + Y^2) کهz=sin(r)/r رسم يک تابع دو بعدي به فرمول: 2 مثال >>x=-7.5: 0.5: 7.5; y=x; >> [x_new,y_new]=meshgrid(x,y); >> r = sqrt(x_new.^2 + y_new.^2) + eps; >>z=sin(r) ./ r; mesh(x_new , y_new , z) اWWي: mesh(x,y,z); فصل دوازدهم :نمودارهاي سه‌بعدي -1۱-3نمودارهاي شبکه‌اي -ادامه- به صورت پیش‌فرض متلب نقاطی از نمودار سه‌بعدی که پشت نقاط جلویی قرار گرفته‌اند را مخفی می‌کند .با استفاده از تابع hiddenمی‌توان این رفتار را تغییر داد: >>hidden off >> hidden on >> hidden فصل دوازدهم :نمودارهاي سه‌بعدي -1۱-4نمودارهاي رويهsurf :و surflو surfc تفاوت نمودارهاي رويه با نمودارهاي شبکه‌اي آن است که در اينجا بجاي خطوط شبکه‌اي ،وصله‌ها يا فواصل بين شبکه‌ها ترسيم مي‌گردد. تابع surfدقيقا مانند تابع meshبکار برده مي‌شود. تابع surflعالوه بر تواناييهاي تابع surfمي‌تواند خصوصيات نوردهي شيء سه‌بعدي را نيز تنظيم کند .از قبيل جهت منبع نوري و خصوصيات انعکاسي شيء تابع surfcمانند تابع meshcعمل مي‌کند فصل دوازدهم :نمودارهاي سه‌بعدي -1۱-4نمودارهاي رويه-ادامه تابع : shading با استفاده از تابع shadingمي‌توان نوع سايه‌‌رنگ نمودار را تعيين کرد .اين تابع بايد پس از يکي از توابع surfبيايد و با يکي از ُسه پارامتر زير قابل فراخواني است: ‏shading flat ‏shading interp ‏shading faceted فصل دوازدهم :نمودارهاي سه‌بعدي -1۱-4نمودارهاي رويه-ادامه تابع : colormap با استفاده از اين تابع مي‌توان رنگهاي بکار برده شده براي ترسيم نمودار رويه را تعريف کرد تنها پارامتر مورد نياز مي‌تواند يکي از ثابتهاي زير باشد: ‏hsv, cool , hot, prism, gray فصل دوازدهم :نمودارهاي سه‌بعدي -11-5چرخش دوربین در فضای سه بعدی با استفاده از تابع camorbitمی‌توان پس از رسم نمودار سه‌بعدی ،زاویه دید دوربین نسبت به شیء را تغییر داد: )camorbit(theta,phi ‏WشWفWقی :thetaزاوWیه چWرخ ا :phiزاوWیه چWرخWشعWمودWی و یا می‌توانید از این فرم تابع استفاده کنید: ;)’مWحور چWرخWش’camorbit(theta,phi, آرگومان سوم محوری است که چرخش حول آن انجام می‌شود را مشخص می‌کند که به صورت پیش‌فرض محور ‌zاست. فصل دوازدهم :نمودارهاي سه‌بعدي -11-5چرخش دوربین در فضای سه بعدی-ادامه... مثال: )surf(peaks ‏axis vis3d ‏axis off ‏for i=1:360 )'camorbit(2,0,'data ‏drawnow ‏end فصل دوازدهم :نمودارهاي سه‌بعدي -11-6تعیین موقعیت دوربین به منظور تعیین موقعیت دوربین می‌توان از تابع camposاستفاده کرد: ‏WیWینتWWابWع مWوقWعیتدورWبWینرا در فWWضای)]campos([x,y,z آرWگومانورود ا ‌کWWند .سWWه‌بWWعدیمWشخصمWی مثال: )surf(peaks ‏axis vis3d off ‏for x = -200:5:200 )]campos([x,5,10 ‏drawnow ‏end فصل دوازدهم :نمودارهاي سه‌بعدي -11-7نمایش میله‌رنگ با استفاده از تابع colorbarمی‌توان پس از نمایش نمودار ،رنگWهای بکار برده شده در آن را بصورت یک میله‌رنگ در کنار نمودار نمایش داد: )>> surf(peaks >> colorbar اعداد نمایش داده شده در کنار میله‌رنگ مقداری را که هر رنگ به آن اشاره می‌کند(به صورت پیش‌فرض مقدار )zرا نمایش می‌دهد. فصل دوازدهم :نمودارهاي سه‌بعدي -1۱-8نمودارهاي ترازcontour , contour3- نمودارهاي تراز خطوط و منحني‌هاي بسته‌اي مي‌باشند که براي نمايش ارتفاع‌هاي مختلف يک نمودار سه‌بعدي ،در فضاي دوبعدي يا سه‌بعدي بکار برده مي‌شوند .در اين نمودارها ،نواحي هم‌ارتفاع توسط خطوطي به يکديگر متصل مي‌شوند. نحوه استفاده از توابع contourو contour3نيز دقيقا شبيه تابع meshاست. مثال: [c,h] = contour(peaks); clabel(c,h), colorbar فصل دوازدهم :نمودارهاي سه‌بعدي -11-9تابع pcolor این تابع داده‌های مربوط به یک نمودار سه‌بعدی را در فضای دو‌بعدی رسم می‌کند و برای نمایش ارتفاع(مقدار )zاز تغییرات رنگ استفاده می‌نماید .نتیجه حاصل از این تابع ، مشابه تصویر از باالی تابع ‌surfاست. مثال :۱ )>>pcolor(peaks مثال :۲ ;))t=tril(ones(10 ;])ts=[t,fliplr(t ;]tss=[flipud(ts);ts ))pcolor(tss); colormap(gray(2 فصل دوازدهم :نمودارهاي سه‌بعدي -11-9اجراي برنامه‌هاي نمايشي متلب در زمينه ترسيم سه‌بعدي مWتلباWهنمايبWWسيار خWوبWيبWWراWيآWموزWشقWWابWليتهايگWWراWفWيکيمWتلب ر demoهاي Graphicsدر ‌بWWاشد .اWيWنبWWرنامWه‌ها از مWنوي StartمWتلبدر شWWاخWه Demo-> Graphicsدر مWي دWسWترسWند.

51,000 تومان