阿基米德螺旋线如何等距取点?

注,程序中的a,b并不对应公式,有空再改~

极坐标下:

r=a+b\theta

如果想要等距取点我们首先想到螺旋线的长度公式,求出长度与\theta的关系即可等距取点。

 计算过程可见知乎《ρ=a+bθ阿基米德螺线弧长怎么计算?》

---公式相当复杂,解出\theta非常困难。

如果在其物理意义上进行操作,是否可行?

 r=a+b\theta

可写为时间函数:

 \theta =\omega t,可见角速度\omega为常数,为匀角速度运动。但是半径r是线性函数,随着角度的增大而增大。这样线速度可以看作是加速度运动。

clear all
t=[0:0.001:1];
w=5*pi;
b=0;
a=1;
zeta=w*t;
r=a*zeta+b;
x=r.*cos(zeta);
y=r.*sin(zeta);
figure
scatter(x,y)
%plot(x,y)

 上图为等时间间隔打点图,显而易见,中间非常密集,沿曲线渐变稀疏,如何实现等间距打点,就是实现阿基米德螺旋曲线的等距取点问题。

思路:1.按照弧长公式,解出tl的关系,按nlt值;

           2.看作直线加速度运动,求出路程lt的关系。

v=\omega r=\omega \left ( a+b\omega t \right )=\omega a+b\omega ^{^{2}}t

l=\omega at+\frac{1}{2}b\omega ^{2}t^{2}

tnl的关系,

clear all
n0=40;
n=[1:1:n0];
w=2*pi;
l0=pi/20;
b=0.005;
a=0.1-b;
t=(sqrt(b^2+2*a.*n*l0)-b)/(a*w);
zeta=w*t;

r=a*zeta+b;
x=r.*cos(zeta);
y=r.*sin(zeta);
figure
scatter(x,y)

 此时,可见是等距打点图像,当我们放大半径可见并不严格等距,原因是?? ?

线速度与角速度的转换关系是圆周运动的条件下,也就是线速度方向正交于半径,但是在螺旋线中,线速度并不正交于半径,尤其当半径增大时,正交性更差,所以误差变大。目前来讲这只是一个粗略等距取点。对于直接求解阿基米德螺旋线弧长与角度的关系不太理想,如果大家有比较好的思想欢迎留言~

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值