MATLAB画旋转曲面1
空间一曲线绕一固定直线旋转一周所生成的曲面。
给定曲线方程,求参数方程并画出旋转曲面
一、定义
空间一曲线绕一固定直线旋转一周所生成的曲面
二、平面曲线绕 x x x轴旋转
因为在 X O Y XOY XOY平面与 X O Z XOZ XOZ平面上的曲线绕 x x x轴旋转是类似的,所以此处只讲一种情况。另一种情况可以参考已写出的。
X
O
Z
XOZ
XOZ坐标面上的曲线
x
=
f
(
z
)
x=f(z)
x=f(z),
(
a
<
z
<
b
)
(a<z<b)
(a<z<b)绕
x
x
x轴旋转一周后得到的旋转曲面的方程为:
x
=
f
(
±
y
2
+
z
2
,
x
)
x=f(\pm\sqrt{y^2+z^2},x)
x=f(±y2+z2,x)
其参数方程为:
{
x
=
f
(
u
)
y
=
u
c
o
s
(
θ
)
z
=
u
s
i
n
(
θ
)
\left \{\begin{array}{cc} x = f(u)\\ y=ucos(\theta)\\ z=usin(\theta) \end{array}\right.
⎩
⎨
⎧x=f(u)y=ucos(θ)z=usin(θ)其中
u
u
u和
θ
\theta
θ为参数
例1:曲线 x = z 2 x=z^2 x=z2, ( 0 ≤ z ≤ 10 ) (0\le z \le 10) (0≤z≤10),绕 x x x轴旋转一周所得到的图形。
解:旋转曲面的一般方程为:
x
=
y
2
+
z
2
x=y^2+z^2
x=y2+z2参数方程为:
{
x
=
u
2
y
=
u
c
o
s
(
θ
)
z
=
u
s
i
n
(
θ
)
\left \{\begin{array}{cc} x = u^2\\ y=ucos(\theta)\\ z=usin(\theta) \end{array}\right.
⎩
⎨
⎧x=u2y=ucos(θ)z=usin(θ)
代码如下:
clear,clc
u=0:0.1:10;
X=u.^2;
theta=0:pi/100:2*pi;
[U,Theta]=meshgrid(X,theta); %生成二维网格
Y=U.*cos(Theta);
Z=U.*sin(Theta);
mesh(X,Y,Z)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
title('x=z^2绕x轴旋转')
%surf(X,Y,Z)
例2:曲线 z = x 2 z=x^2 z=x2, ( − 10 ≤ x ≤ 10 ) (-10\le x \le 10) (−10≤x≤10)绕 x x x轴旋转一周所得到的图形。
解:转曲面的方程为: z 2 + y 2 = x 2 \sqrt{z^2+y^2}=x^2 z2+y2=x2
其参数方程为:
{
x
=
u
y
=
u
2
c
o
s
(
θ
)
z
=
u
2
s
i
n
(
θ
)
\left \{\begin{array}{cc} x = u\\ y=u^2cos(\theta)\\ z=u^2sin(\theta) \end{array}\right.
⎩
⎨
⎧x=uy=u2cos(θ)z=u2sin(θ)
代码如下:
clear,clc
u=-10:0.1:10;
X=u;
theta=0:pi/100:2*pi;
[U,Theta]=meshgrid(X,theta); %生成二维网格
Y=u.^2.*sin(Theta);
Z=u.^2.*cos(Theta);
mesh(X,Y,Z)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
title('z=x^2绕x轴旋转')
%surf(X,Y,Z)
三、平面曲线绕 y y y轴旋转
X
O
Y
XOY
XOY坐标面上的曲线
y
=
f
(
x
)
y=f(x)
y=f(x),
(
a
<
x
<
b
)
(a<x<b)
(a<x<b)绕
y
y
y轴旋转一周后得到的旋转曲面的方程为:
y
=
f
(
±
x
2
+
z
2
,
y
)
y=f(\pm\sqrt{x^2+z^2},y)
y=f(±x2+z2,y)
其参数方程为:
{
x
=
f
(
u
)
s
i
n
(
θ
)
y
=
u
z
=
f
(
u
)
c
o
s
(
θ
)
\left \{\begin{array}{cc} x=f(u)sin(\theta)\\ y=u \\ z=f(u)cos(\theta) \end{array}\right.
⎩
⎨
⎧x=f(u)sin(θ)y=uz=f(u)cos(θ)其中
u
u
u和
θ
\theta
θ为参数
例3:曲线 x 2 + y 2 = 1 x^2+y^2=1 x2+y2=1, ( − 1 ≤ y ≤ 1 ) (-1\le y \le 1) (−1≤y≤1)绕 y y y轴旋转一周所得到的图形
解:旋转曲面方程为: y = ± 1 − x 2 y=\pm\sqrt{1-x^2} y=±1−x2其参数方程为: { y = u x = 1 − u 2 s i n ( θ ) z = 1 − u 2 c o s ( θ ) \left \{\begin{array}{cc} y=u \\ x=\sqrt{1-u^2}sin(\theta)\\ z=\sqrt{1-u^2}cos(\theta) \end{array}\right. ⎩ ⎨ ⎧y=ux=1−u2sin(θ)z=1−u2cos(θ)其中 u u u和 θ \theta θ为参数
代码如下:
clear,clc
u=-1:0.01:1;
theta=0:pi/100:2*pi;
[U,Theta]=meshgrid(u,theta); %生成二维网格序列
X=sqrt(1-u.^2).*cos(Theta);
Y=U;
Z=sqrt(1-u.^2).*sin(Theta);
mesh(X,Y,Z)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
title('x=sqrt(y*ln(y+1))绕y轴旋转')
%surf(X,Y,Z)
例4:曲线 x = y l n ( y + 1 ) x=\sqrt{yln(y+1)} x=yln(y+1), ( 0 ≤ y ≤ 1 ) (0\le y \le 1) (0≤y≤1)绕 y y y轴旋转一周所得到的图形
解:旋转曲面方程为: x 2 + z 2 = y l n ( y + 1 ) x^2+z^2=yln(y+1) x2+z2=yln(y+1)其参数方程为: { y = u x = u l n ( u + 1 ) s i n ( θ ) z = u l n ( u + 1 ) c o s ( θ ) \left \{\begin{array}{cc} y=u \\ x=\sqrt{uln(u+1)}sin(\theta)\\ z=\sqrt{uln(u+1)}cos(\theta) \end{array}\right. ⎩ ⎨ ⎧y=ux=uln(u+1)sin(θ)z=uln(u+1)cos(θ)其中 u u u和 θ \theta θ为参数
代码如下:
clear,clc
u=0:0.1:1;
theta=0:pi/100:2*pi;
[U,Theta]=meshgrid(u,theta); %生成二维网格序列
X=sqrt(u.*log(u+1)).*cos(Theta);
Y=U;
Z=sqrt(u.*log(u+1)).*sin(Theta);
mesh(X,Y,Z)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
title('x=sqrt(y*ln(y+1))绕y轴旋转')
%surf(X,Y,Z)
四、平面曲线绕 z z z轴旋转
X
O
Z
XOZ
XOZ坐标面上的曲线
z
=
f
(
x
)
z=f(x)
z=f(x),
(
a
<
x
<
b
)
(a<x<b)
(a<x<b)绕
x
x
x轴旋转一周后得到的旋转曲面的方程为:
z
=
f
(
±
x
2
+
y
2
,
z
)
z=f(\pm\sqrt{x^2+y^2},z)
z=f(±x2+y2,z)
其参数方程为:
{
x
=
u
s
i
n
(
θ
)
)
y
=
u
c
o
s
(
θ
)
z
=
f
(
u
)
\left \{\begin{array}{cc} x = usin(\theta))\\ y=ucos(\theta)\\ z=f(u) \end{array}\right.
⎩
⎨
⎧x=usin(θ))y=ucos(θ)z=f(u)其中
u
u
u和
θ
\theta
θ为参数
例5:曲线 z = s i n ( x ) z=sin(x) z=sin(x), ( 0 ≤ x ≤ 2 π ) (0\le x\le 2\pi) (0≤x≤2π)绕 z z z轴旋转一周所得到的图形
解:旋转曲面的一般方程为: z = s i n ( ± x 2 + y 2 ) z=sin(\pm\sqrt{x^2+y^2}) z=sin(±x2+y2)其参数方程为: { x = u s i n ( θ ) ) y = u c o s ( θ ) z = s i n ( u ) \left \{\begin{array}{cc} x = usin(\theta))\\ y=ucos(\theta)\\ z=sin(u) \end{array}\right. ⎩ ⎨ ⎧x=usin(θ))y=ucos(θ)z=sin(u)其中 u u u和 θ \theta θ为参数
代码如下:
clear,clc
u=0:0.01:2*pi;
theta=0:pi/100:2*pi;
[U,Theta]=meshgrid(u,theta); %生成二维网格序列
X=U.*sin(Theta);
Y=U.*cos(Theta);
Z=sin(U);
mesh(X,Y,Z)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
title('z=sin(x)绕z轴旋转')
%surf(X,Y,Z)
参考: 作者scuxuxz
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)