صفحه 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