首页 > 社交 > 科普中国

使用

常驻编辑 科普中国 2022-09-30 简分数   步长   分母   光标   初始化   齿轮   公式   线条   角度   效果

关键词:python 、 万花尺 、 turtle 、 fractions 模块 、 math 模块vex拜客生活常识网

开发环境:PyCharmvex拜客生活常识网

版本:python 3.9.5vex拜客生活常识网

前言vex拜客生活常识网

小时候我们使用设计工具,以落点为原点,沿外层工具大小画出不规则的图案,即为万花尺vex拜客生活常识网

万花尺vex拜客生活常识网

原理vex拜客生活常识网

大小齿轮的齿数之比,约为最简分数时,其分母就是小齿轮沿大齿轮的公转数,分子就是花瓣数,分子和分母的差就是小齿轮的自转数vex拜客生活常识网

公式vex拜客生活常识网

vex拜客生活常识网

vex拜客生活常识网


vex拜客生活常识网

效果图vex拜客生活常识网

效果1vex拜客生活常识网

效果2vex拜客生活常识网

效果3vex拜客生活常识网

关键代码vex拜客生活常识网

# 初始化光标参数
def setparams(self, xc,yc,col,R,r,l):
    # 设置相关轴线、角度、步长、颜色等
    self.xc = xc
    self.yc = yc
    self.R = int(R)
    self.r = int(r)
    self.l = l
    self.col = col
    # 计算最小公约数
    gcdVal = math.gcd(self.r, self.R)
    self.nRot = self.r 
    # 得到半径比例
    self.k = r / float(R)
    # 设置颜色
    self.t.color(*col)
    # 初始化角度
    self.a = 0
# 绘画线条
def draw(self):
    # 循环画出其余线条
    R,k,l = self.R,self.k, self.l
    for i in range(0, int(360 * self.nRot + l), self.step):
        a = math.radians(i)
        x = R * ((l-k) * math.cos(a) + l * k * math.cos((l-k) * a / k))
        y = R * ((l-k) * math.sin(a) - l * k * math.sin((l-k) * a / k))
        self.t.setpos(self.xc + x, self.yc + y)
    # 绘画完成后隐藏光标
    self.t.hideturtle()
# 根据步长进行更新坐标
def update(self):
    # 判断绘画是否完成,是则跳过
    if self.drawingComplete:
        return
    # 增加描绘角度
    self.a += self.step
    # 根据步长绘制
    R,k,l = self.R, self.k, self.l
    # 设置角度
    a = math.radians(self.a)
    # 根据如上公式进行计算
    x = self.R * ((l - k) * math.cos(a) + l * k * math.cos((l - k) * a / k))
    y = self.R * ((l - k) * math.sin(a) - l * k * math.sin((l - k) * a / k))
    self.t.setpos(self.xc + x, self.yc + y)
    # 如果绘画完成,则标记
    if self.a >= 360 * self.nRot:
        self.drawingComplete = True
        # 绘画完成后隐藏光标
        self.t.hideturtle()

https://pan.baidu.com/s/1ly15zaPWr-L2guKJGk6VmQvex拜客生活常识网

提取码: 62wj 复制这段内容后打开百度网盘手机App,操作更方便哦vex拜客生活常识网

相关阅读:

  • python程序员的浪漫
  • 步长制药发展战略 步长制药转型战略 步长制药企业精神
  • 晚间公告|9月26日这些公告有看头
  • 10.18北上资金,买入比例最大前100名的个股,占比排名一览
  • 你微信运动见过七万多步的么?
  • 中老年人采用什么运动方式锻炼身体比较好?
  • 上班族工作繁忙,如何利用好空闲时间锻炼身体?
  • 看得见的效果,博乐宝B16免安装净饮机,实测对比结果惊人
  • 付鹏:全球温水煮青蛙,欧洲最麻烦,看谁先熬不住
  • 一文读懂计算机键盘按键的英文含义和基本功能
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。