matlab将一条曲线的绕x轴旋转几何体图画出来

如题,如果我有一条曲线(已经在二维坐标上画出),希望可以得到其以某个旋转轴或旋转中心旋转得到的三维几何体,用matlab应该怎么实现?求指教... 如题,如果我有一条曲线(已经在二维坐标上画出),希望可以得到其以某个旋转轴或旋转中心旋转得到的三维几何体,用matlab应该怎么实现?求指教 展开
 我来答
真greatdju
2013-08-21 · TA获得超过3856个赞
知道小有建树答主
回答量:1300
采纳率:91%
帮助的人:750万
展开全部

这是绘制旋转曲面网格图的程序,该程序可以绘制任意曲线沿任意旋转轴生成的旋转曲面。

把该文件保存到你的工作目录中即可。

用法说明:

rotsurf(curve,alpha,dirct,orgin)

  curve=[x,y,z]为母线,其中x,y,z为列向量,分别代表母线的三维坐标

  向量alpha为旋转的弧度,默认为0:pi/36:2*pi,采样点的范围和密度都可以手动控制

  direct和origin分别代表旋转轴的方向和该旋转轴上的任意一点的坐标,这两个参数合起来确定了一条直线,即旋转轴,其中:

      direct表示旋转轴的方向,有两种表示法[theta,phi]或[x0,y0,z0],其中:

          theta代表沿xoy平面从x轴正方向逆时针旋转的弧度,phi代表从xoy平面向z轴正方向旋转的弧度

          [x0,y0,z0]代表方向向量

          direct默认为[0 0 1],即z轴方向

      origin=[xo,yo,zo]为该旋转轴上的任意一点坐标,默认为[0 0 0]即原点

h=rotsurf(...)

  绘制曲面的同时返回该曲面的句柄h


例:绘制母线为x=0,y^2+z^2=1,旋转轴为x=1,z=-y-2的圆环

t=linspace(-pi,pi,37);
y=sin(t);z=cos(t);x=y-y;
rotsurf([x' y' z'],[],[0 -1 1],[1 -2 0])
xlabel('x');ylabel('y');zlabel('z');axis equal



tianxiawulang
推荐于2017-11-26 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2626万
展开全部
1、如果绕某个坐标轴旋转(如x轴),相对来说比较容易,可以参考我以前的回答:
http://zhidao.baidu.com/question/557206072.html
http://zhidao.baidu.com/question/497173066.html
其他人回答的也有过相关的主题:
http://zhidao.baidu.com/question/254033517.html
http://zhidao.baidu.com/question/101555209.html

2、如果绕空间任意轴旋转,需要指定旋转轴的方向,做起来也更复杂一些。

3、我不知道你说的绕“旋转中心”旋转是什么意思,但可以肯定,如果不是绕固定轴旋转,而是绕固定点任意旋转的话,得到的应该是一个球面(由离旋转中心最远的点所有可能的位置组成)。

有问题可继续追问,但是,请明确你的问题,包括曲线的形式和旋转轴方向。
更多追问追答
追问
额,那个绕一个点旋转我的确没给清楚,这里得到的情况太多了,所以就不考虑了
至于曲线的形式,我们这里就只说说解析的吧,旋转轴当然是任意给出的一个向量,当然关于曲线上的某一个点的法向量除外
追答
曲线解不解析没什么关系,但曲线是平面曲线还是空间曲线?
如果是平面曲线,它和旋转轴是否在一个平面内?

我上面说了,希望你能把问题说得明确一点、具体一点,换句话说,就是直接把曲线的方程和旋转轴给出来。
否则,我回答或者需要考虑最一般的情形,那样做太复杂,而且写出的代码可能也并不实用;或者我自己构造个例子,做完之后你又说不是你想要的,那不是白白浪费我的时间吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式