如何用matlab作空间曲线的切线及法平面
1个回答
展开全部
这个不难实现.
下图是螺旋线
x=cos(theta)
y=sin(theta)
z=theta
theta为参数
在 theta = pi/6 处的切线和法平面。
clear all
close all
t = linspace(0,4*pi,401);
x = cos(t);
y = sin(t);
z = t;
figure
axis square
hold on
plot3(x,y,z,'linewidth',2,'color','k')
% 在t=pi/6处切向量为{-1/2,3^(1/2)/2,1}
% 切点坐标为(3^(1/2)/2,1/2,pi/6);
% 切线
u = -1:.1:1;
xx = sqrt(3)/2 - u/2;
yy = 1/2 + u*sqrt(3)/2;
zz = pi/6 +u;
plot3(xx,yy,zz,'linewidth',2)
% 法平面
xlab = -1.1:1;
[xxx yyy] = meshgrid(xlab);
zzz = xxx/2 - sqrt(3)*yyy/2 + pi/6;
surf(xxx,yyy,zzz)
xlabel('x')
ylabel('y')
zlabel('z')
追问
可是我把 面地程序输入了 但是不行啊 有错误 那个theta没有定义 后来我们把theta改了一下 但成了平面图了 求解 谢谢了
追答
你把下面花括号之间的语句(不包括花括号)copy 到 matlab editor,保存运行即可。
{
clear all
close all
t = linspace(0,4*pi,401);
x = cos(t);
y = sin(t);
z = t;
figure
axis square
hold on
plot3(x,y,z,'linewidth',2,'color','k')
% 在t=pi/6处切向量为{-1/2,3^(1/2)/2,1}
% 切点坐标为(3^(1/2)/2,1/2,pi/6);
% 切线
u = -1:.1:1;
xx = sqrt(3)/2 - u/2;
yy = 1/2 + u*sqrt(3)/2;
zz = pi/6 +u;
plot3(xx,yy,zz,'linewidth',2)
% 法平面
xlab = -1.1:1;
[xxx yyy] = meshgrid(xlab);
zzz = xxx/2 - sqrt(3)*yyy/2 + pi/6;
surf(xxx,yyy,zzz)
xlabel('x')
ylabel('y')
zlabel('z')
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询