ساخت شکل استوانه (cylinder)، با دستور cylinder در متلب
با استفاده از دستور cylinder در متلب، می توانیم شکل یک استوانه را بسازیم. در واقع، دستور cylinder ، مختصات [X,Y,Z] استوانه مورد نظرمان را به ما می دهد و بعد با یکی از دستورات مربوط به رسم سه بعدی شکل، می توانیم استوانه را رسم کنیم.
دستور cylinder را به صورت کلی زیر به کار می بریم :
که در آن، N تعداد نقاطی است که برای رسم سطح مقطع استوانه به کار می رود و هر چه تعداد این نقاط، بیشتر باشد، سطح مقطع استوانه به دایره نزدیکتر (شبیه تر) می شود. همچنین، R یک بردار با دو عنصر می باشد که عنصر اول آن، شعاع ابتدای استوانه و عنصر دوم آن، شعاع سمت دیگر می باشد، بنابراین برای اینکه یک استوانه بدون تغییر شعاع داشته باشیم، باید این دو عنصر را مساوی انتخاب کنیم (با مثال، این موضوع را بیشتر شرح خواهیم داد).
یک استوانه با شعاع برابر 1 و سطح مقطع در صفحه X-Y با مرکز [0,0]=[X,Y] رسم می کنیم :
close all
clc
R=[1 1];
N=80;
[X,Y,Z] = cylinder(R,N);
surf(X,Y,Z);
xlabel(‘x axis’)
ylabel(‘y axis’)
zlabel(‘z axis’)
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد.
نتیجه :
تغییر مختصات محور استوانه (نقطه مرکز سطح مقطع استوانه) :
برای تغییر مختصات محور استوانه (نقطه مرکز سطح مقطع استوانه)، ابتدا یک استوانه با مرکز سطح مقطع برابر [0,0] می سازیم و سپس میزان شیفت مختصات برای نقطه مرکز سطح مقطع را به دو مولفه از مختصات استوانه اضافه می کنیم. برای درک بهتر این موضوع، به مثال زیر توجه کنید :
فرض کنید بخواهیم همان مثال قبل را این بار با سطح مقطع در صفحه X-Y با مرکز [2,2]=[X,Y] رسم کنیم، برای این منظور، کدهای زیر را می نویسیم :
close all
clc
R=[1 1];
N=80;
[X,Y,Z] = cylinder(R,N);
x0=2;
y0=2;
surf(X+x0,Y+y0,Z);
xlabel(‘x axis’)
ylabel(‘y axis’)
zlabel(‘z axis’)
نتیجه :
ساخت استوانه با شعاع سطح مقطع متغیر :
برای آنکه شعاع سطح مقطع استوانه به مرور تغییر کند، باید دو عدد تعیین شده در بردار R را غیر یکسان در نظر بگیریم (عدد اول، برابر شعاع سطح مقطع در ابتدای استوانه و عدد دوم، برابر شعاع سطح مقطع در انتهای استوانه می باشد). برای درک بهتر این موضوع، به مثال زیر توجه کنید :
close all
clc
R=[1 2];
N=80;
[X,Y,Z] = cylinder(R,N);
surf(X,Y,Z);
xlabel(‘x axis’)
ylabel(‘y axis’)
zlabel(‘z axis’)
نتیجه :
تغییر جهت رسم استوانه (قرارگیری سطح مقطع استوانه در صفحه ای به غیر از صفحه X-Y) :
چنانچه بخواهیم که جهت رسم استوانه، جهتی غیر از محور Z باشد (یعنی سطح مقطع استوانه در صفحه ای به غیر از X-Y)، باید در مرحله ساخت مختصات نقاط استوانه، جای مولفه های مختصات را با هم عوض کنیم. برای درک بهتر این موضوع، به مثال زیر توجه کنید :
هنگام ساخت مختصات نقاط استوانه، جای مولفه های X و Z را با هم عوض می کنیم تا سطح مقطع استوانه، در صفحه Y-Z قرار داشته باشد :
close all
clc
R=[1 1];
N=80;
[Z,Y,X] = cylinder(R,N);
surf(X,Y,Z);
xlabel(‘x axis’)
ylabel(‘y axis’)
zlabel(‘z axis’)