关于Matlab作已经知函数绕固定轴旋转而成的三维函数问题
二维函数的描绘程序已知:p=-2*pi:0.01:2*pi;r=sqrt(cos(2*p));x=r.*cos(p);y=r.*sin(p);plot(x,y)我需要让它...
二维函数的描绘程序已知:
p=-2*pi:0.01:2*pi;
r=sqrt(cos(2*p));
x=r.*cos(p);
y=r.*sin(p);
plot(x,y)
我需要让它绕x轴旋转任意角度而成三维图像,程序应该怎么编写?请写出具体命令以及命令的注解.
我想把它转变为一个三维的连续图形.类似这样的得到的三维图形:
r=-10:10;
t=linspace(0,pi*2,18);
[r,t]=meshgrid(r,t);
x=r.*sin(t);
y=r.*cos(t);
z=r;
surf(x,y,z);
axis equal
还有一个我不明白的问题是,按照以上格式,我编写如下格式程序:
t=linspace(0,pi*2,18);
r=sqrt(cos(2*t));
[r,t]=meshgrid(r,t);
x=r.*cos(t);
y=r.*sin(t);
z=r;
mesh(x,y,z);
axis equal
系统信息反馈的错误问题如下:
??? Error using ==> mesh at 69
X, Y, Z, and C cannot be complex.
如何解决? 展开
p=-2*pi:0.01:2*pi;
r=sqrt(cos(2*p));
x=r.*cos(p);
y=r.*sin(p);
plot(x,y)
我需要让它绕x轴旋转任意角度而成三维图像,程序应该怎么编写?请写出具体命令以及命令的注解.
我想把它转变为一个三维的连续图形.类似这样的得到的三维图形:
r=-10:10;
t=linspace(0,pi*2,18);
[r,t]=meshgrid(r,t);
x=r.*sin(t);
y=r.*cos(t);
z=r;
surf(x,y,z);
axis equal
还有一个我不明白的问题是,按照以上格式,我编写如下格式程序:
t=linspace(0,pi*2,18);
r=sqrt(cos(2*t));
[r,t]=meshgrid(r,t);
x=r.*cos(t);
y=r.*sin(t);
z=r;
mesh(x,y,z);
axis equal
系统信息反馈的错误问题如下:
??? Error using ==> mesh at 69
X, Y, Z, and C cannot be complex.
如何解决? 展开
2个回答
展开全部
首先,你用的plot画出来的是一个二维的图形,即使通过旋转,在视觉上
你也只能看到一个投影的平面图,为了解决这个问题
我们得把你需要的曲线用plot3画成空间曲线,这样就能看到旋转效果
命令如下:
>> p=-2*pi:0.01:2*pi;
>> z=zeros(size(p));%生成与p同样大小的零矩阵z,让该平面处在z=0的平面上
>> r=sqrt(cos(2*p));x=r.*cos(p);y=r.*sin(p);
>> f=plot3(x,y,z);%画出空间曲线
>> rotate(f,[1 0 0],45,[0 0 0])%使用旋转命令使其旋转45度,其中[1 0 0]代表旋转轴,此处是x轴
%,[0 0 0]代表旋转点,f是图形句柄
>> hold on
>> f=plot3(x,y,z);%画出原图形进行比较
这个回答满意吗?
你也只能看到一个投影的平面图,为了解决这个问题
我们得把你需要的曲线用plot3画成空间曲线,这样就能看到旋转效果
命令如下:
>> p=-2*pi:0.01:2*pi;
>> z=zeros(size(p));%生成与p同样大小的零矩阵z,让该平面处在z=0的平面上
>> r=sqrt(cos(2*p));x=r.*cos(p);y=r.*sin(p);
>> f=plot3(x,y,z);%画出空间曲线
>> rotate(f,[1 0 0],45,[0 0 0])%使用旋转命令使其旋转45度,其中[1 0 0]代表旋转轴,此处是x轴
%,[0 0 0]代表旋转点,f是图形句柄
>> hold on
>> f=plot3(x,y,z);%画出原图形进行比较
这个回答满意吗?
追问
是我没有表达清楚。我已将问题补充,可以的话,看一下吧。
追答
我觉得你对参数方程有问题,能不能给我原方程
东莞大凡
2024-11-14 广告
2024-11-14 广告
标定板认准大凡光学科技,专业生产研发厂家,专业从事光学影像测量仪,光学投影测量仪.光学三维测量仪,光学二维测量仪,光学二维测量仪,光学三维测量仪,光学二维测量仪.的研发生产销售。东莞市大凡光学科技有限公司创立于 2018 年,公司总部坐落于...
点击进入详情页
本回答由东莞大凡提供
展开全部
问题出在r上。
你的r=sqrt(cos(2*t))
cos(2t)在0到4pi上面,可正可负,当为负时。根号出来,是复数。导致x,y,z都是复数矩阵。
t=linspace(0,pi*2,18);
r=sqrt(cos(t/4)); %0到pi/2之间OK
[r,t]=meshgrid(r,t);
x=r.*cos(t);
y=r.*sin(t);
z=r;
mesh(x,y,z);
axis equal
你的r=sqrt(cos(2*t))
cos(2t)在0到4pi上面,可正可负,当为负时。根号出来,是复数。导致x,y,z都是复数矩阵。
t=linspace(0,pi*2,18);
r=sqrt(cos(t/4)); %0到pi/2之间OK
[r,t]=meshgrid(r,t);
x=r.*cos(t);
y=r.*sin(t);
z=r;
mesh(x,y,z);
axis equal
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询