关于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.
如何解决?
展开
 我来答
angueyuan
2011-04-17 · TA获得超过322个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:195万
展开全部
首先,你用的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);%画出原图形进行比较
这个回答满意吗?
追问
是我没有表达清楚。我已将问题补充,可以的话,看一下吧。
追答
我觉得你对参数方程有问题,能不能给我原方程
东莞大凡
2024-11-14 广告
标定板认准大凡光学科技,专业生产研发厂家,专业从事光学影像测量仪,光学投影测量仪.光学三维测量仪,光学二维测量仪,光学二维测量仪,光学三维测量仪,光学二维测量仪.的研发生产销售。东莞市大凡光学科技有限公司创立于 2018 年,公司总部坐落于... 点击进入详情页
本回答由东莞大凡提供
wacs5
2011-04-19 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2799万
展开全部
问题出在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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式