阿基米德螺线(等速螺线)是一个点匀速离开一个固定点的同时又以固定的角速度绕该固定点转动而产生的轨迹。
根据最新的研究表明,阿基米德螺旋公式可以用指定的半径r,圆周速度v,直线运动速度w来表示,公式为
根据这一公式,当圆周速度与直线速度同时增大一倍时,阿基米德螺旋的形状是不会发生变化的,因此,阿基米德螺旋属于等速度比螺旋,同时由于它在每个旋转周期内是等距离外扩的,故又可称它为
等距螺旋_百度百科baike.baidu.com第一种方法,参考了网上的椭圆画法
from rc import *
from turtle import *
import math
rc()
"""灵感源于割圆术"""
len0=50 #等距差
r1=0 #初始半径
len1=(2*math.pi*r1)/360 #原半径r1,前进1度的长度
len2=(2*math.pi*(r1+len0))/360 #半径变化后,前进1度的长度
my_goto(0,0)
pencolor("red")
seth(90) # 朝上
for j in range(1800): # 重复执行1800次,也就是5个圈
forward(len1+((len2-len1)/360)*j) # 步长渐变
print(((len1+((len2-len1)/360)*j)*360)/(2*math.pi))
left(1) # 左转1度
hideturtle()
done()
第二种方法,由等距螺线定义得来
from rc import *
from turtle import *
import math
rc()
"""这种方法运行速度较快"""
dis=50 #等距差
r0=50 #初始半径
my_goto(0,0)
pencolor("red")
seth(90) # 朝上
for j in range(1800): # 重复执行1800次,也就是5个圈
circle(0+(50/360)*j,1)
print(pos())
hideturtle()
done()
最后验证了一下结束乌龟的位置