matlab旋转函数介绍,关于Matlab作已经知函数绕固定轴旋转而成的三维函数问题

问题描述:

关于Matlab作已经知函数绕固定轴旋转而成的三维函数问题

二维函数的描绘程序已知:

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.

1个回答

分类:

综合

2014-10-25

问题解答:

我来补答

首先,你用的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);%画出原图形进行比较

这个回答满意吗?

再问: 是我没有表达清楚。我已将问题补充,可以的话,看一下吧。

再答: 我觉得你对参数方程有问题,能不能给我原方程

展开全文阅读

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值