请问如何用Matlab画这样的图形:

有一半径为R的定圆,另有一半径为r的动圆沿定圆内侧无滑动地滚动(始终相切)。P为动圆上的一点,绘制P点的运动轨迹。并且,能够得到P点运动轨迹的方程表达式吗?... 有一半径为R的定圆,另有一半径为r的动圆沿定圆内侧无滑动地滚动(始终相切)。P为动圆上的一点,绘制P点的运动轨迹。
并且,能够得到P点运动轨迹的方程表达式吗?
展开
 我来答
dukinkin
2015-08-21 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:912万
展开全部

P点的运动轨迹方程是

R=5;

r=1;

t=linspace(0,2*pi);

x1=R*cos(t);

y1=R*sin(t);

x2=r*cos(t);

y2=r*sin(t);

x3=(R-r)*cos(t);

y3=(R-r)*sin(t);

x=(R-r)*cos(t)+r*cos(R/r*t-t);

y=(R-r)*sin(t)-r*sin(R/r*t-t);

plot(x1,y1,'k');hold on;

h1=plot(x2+R-r,y2,'b-');

h2=plot(x(1),y(1),'r-');

h3=plot([R-r R],[0 0],'k.-');

hold off;

axis equal;

for ii=2:length(t)

   set(h1,'xdata',x2+x3(ii),'ydata',y2+y3(ii)); 

   set(h2,'xdata',x(1:ii),'ydata',y(1:ii));

   set(h3,'xdata',[x3(ii) x(ii)],'ydata',[y3(ii) y(ii)]);

   pause(0.1);

   drawnow

end


以上代码画出动态过程如上图,只要画轨迹的话

之需要计算x,y就可以

R=5;r=1;

t=linspace(0,2*pi);

x=(R-r)*cos(t)+r*cos(R/r*t-t);

y=(R-r)*sin(t)-r*sin(R/r*t-t);

plot(x,y);

追问
谢谢你。
不过,轨迹方程要自己计算出来吗?
能不能输入一些条件(如定圆位置,半径,动圆半径)来让Matlab自动得到呢?
追答
一般来说,从问题出发,构造数学模型,然后计算
而如果想让计算机自己从实际问题出发列出公式,那基本实现不了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式