研发埠

标题: 绘制相切曲线的问题 [打印本页]

作者: 刘洋    时间: 2014-5-6 10:39
标题: 绘制相切曲线的问题
20140506103923746.jpg
登录/注册后可看大图



        如图,用红色曲线的圆阵列,我需要这些圆的内包络线,这个跟hilbert不太一样吧,不是传统的包络线。我用过atan(-gradient(x)./gradient(y))+pi,不行,当x为0时会出问题。
        有人知道应该怎么得到里面与圆相切的曲线吗。
作者: 王晓明    时间: 2014-5-6 15:29
你试试隐函数画图,你这包络不就是到圆心曲线的距离等于半径的点集吗?
作者: 刘洋    时间: 2014-5-6 17:36
我是matlab新手  隐函数我不知道怎么用  你看一下这一段,怎么画出圆内包络线,谢谢了wt=0:1:360;x=100*cos(wt*pi/180);y=100*sin(wt*pi/180);k=atan(-gradient(x)./gradient(y))+pi;a=x+30*cos(k);b=y+30*sin(k);hold on;axis equalt=0:0.01:2*pi;m=30*cos(t);n=30*sin(t);for i=0:1:360plot(m+x(i+1),n+y(i+1),'y');plot(x(1:i+1),y(1:i+1),'b');plot(a(1:i+1),b(1:i+1),'b');end
作者: 王晓明    时间: 2014-5-7 10:53
把a和b的值用下面的方式定义,你看是否满足你的要求:a=x-30*gradient(y)./((gradient(y)).^2+(gradient(x)).^2).^(1/2);b=y+30*gradient(x)./((gradient(y)).^2+(gradient(x)).^2).^(1/2);
作者: 刘洋    时间: 2014-5-7 15:20
我爱你,这问题困扰我两个月了,终于解决了




欢迎光临 研发埠 (http://bbs.yanfabu.com/) Powered by Discuz! X3.2