第4章 案例研究:接口设计

练习 4-3 用函数画雨伞

写一组合适的通用函数,用来画出下图所示的图形(最终代码执行效果图):

【求解】
不得不说,练习 4-3 比 练习 4-2 简单多了!!!
Step.1 确认组件
由 nnn 个等腰三角形组成“雨伞”

Step.2 抽象问题
已知:雨伞边数 nnn、雨伞边长 lll
求:等腰三角形顶角、底角

Step.3 问题求解
nnn 个顶角平分 360°360°360°:2πn=360n\frac{2π}{n}=\frac{360}{n}n2π​=n360​
已知等腰三角形顶角 360n\frac{360}{n}n360​,求底角:180−360n2\frac{180-\frac{360}{n}}{2}2180−n360​​
已知等腰三角形底边 lll,求腰长:r=l2sinπnr=\frac{l}{2sin\frac{π}{n}}r=2sinnπ​l​

Step.4 完成代码

"""
《Think Python》练习 4-3:通用函数画雨伞n:雨伞的边数
l:雨伞的边长
"""#引入数学模块、乌龟模块
import math
import turtle#调用乌龟画图
bob = turtle.Turtle()#雨伞
def umbrella(n,l):#计算雨伞中每个等边三角形的顶角(angle_in)、底角(angle_out)、腰长(r)angle_in = 360 / nangle_out = (180 - angle_in) / 2r = l / 2 / math.sin(angle_in / 2 / 180 * math.pi)#重复画等腰三角形完成雨伞for i in range(n):bob.lt(angle_in/2)bob.fd(r)bob.lt(180 - angle_out)bob.fd(l)bob.lt(180 - angle_out)bob.fd(r)bob.lt(180 - angle_in/2)#左移240,画出5瓣雨伞
bob.pu()
bob.fd(-240)
bob.pd()
umbrella(5,115)#右移240,画出6瓣雨伞
bob.pu()
bob.fd(240)
bob.pd()
umbrella(6,98)#右移240,画出7瓣雨伞
bob.pu()
bob.fd(240)
bob.pd()
umbrella(7,85)#下移120,让turtle不遮挡雨伞
bob.pu()
bob.rt(90)
bob.fd(120)turtle.mainloop()

《Think Python》练习 4-3:用函数画雨伞相关推荐

  1. 在Python中用turtle函数画同心圆

    用turtle函数画空心圆 turtle.circle是从下方开始画圆的,所以要画同心圆的话,每一次都要将画笔移动到下一个圆的底部位置. 画笔的坐标默认在0,0,就以它为圆心. 因为turtle画圆的 ...

  2. python用circle函数画兔子的方法

    python用circle函数画兔子的方法 circle函数说明 1.在circle函数中,参数radius取像素值和extent取角度的整数值可以取正负值. circle()函数以画笔当前方向(y' ...

  3. 《Think Python》练习 4-2:用函数画花朵

    第4章 案例研究:接口设计 练习 4-2 用函数画花朵 写一组合适的通用函数,用来画出下图所示的花朵图案(最终代码执行效果图): [求解] Step.1 确认组件 如果想通过本张介绍的多边线 poly ...

  4. 用python的turtle画同心圆_在Python中用turtle函数画同心圆

    原博文 2019-12-24 09:01 − 用turtle函数画空心圆 turtle.circle是从下方开始画圆的,所以要画同心圆的话,每一次都要将画笔移动到下一个圆的底部位置. 画笔的坐标默认在 ...

  5. python怎么用turtle画圆_在Python中用turtle函数画同心圆

    用turtle函数画空心圆 turtle.circle是从下方开始画圆的,所以要画同心圆的话,每一次都要将画笔移动到下一个圆的底部位置. 画笔的坐标默认在0,0,就以它为圆心. 因为turtle画圆的 ...

  6. python怎么用turtle画同心圆_在Python中用turtle函数画同心圆

    用turtle函数画空心圆 turtle.circle是从下方开始画圆的,所以要画同心圆的话,每一次都要将画笔移动到下一个圆的底部位置. 画笔的坐标默认在0,0,就以它为圆心. 因为turtle画圆的 ...

  7. python中画圆的代码_Python编程12:Python画图之turtle库如何画圆

    #少儿编程# 从上一篇开始,我将和小朋友们一起用Python语言来画图.turtle库是Python语言中一个很流行的绘制图像的库,上一篇我们已经知道如何使用turtle库,如何使用turtle库的函 ...

  8. python画圆简单代码-Python 用turtle实现用正方形画圆的例子

    最近发现一个很有意思的画图的python库,叫做turtle,这里先说下用turtle这个库来实现用正方形画圆的思路. 每次都用乌龟(turtle) 来画出一个正方形,然后通过旋转3°后,继续画一样的 ...

  9. 用python的turtle画圆-(python海龟绘图怎么增加每次画圆的半径)

    Python 如何调用graphics库画圆弧,半圆等 import turtle turtle.left(135) turtle.circle(120,90) turtle.done() pytho ...

最新文章

  1. PHP7.3中fileinfo怎么安装与开启
  2. Acwing1086. 恨7不成妻(未解决)
  3. Android(组件大全)
  4. UNION 和UNION ALL 的区别
  5. 【熊猫多模式站群开发日志】权限控制拦截器
  6. 使用嵌套循环,打印 5 行 5 列的直角三角形
  7. python词频统计西游记实验报告_Python文本统计功能之西游记用字统计操作示例
  8. mysql查询时间提前五天_mysql选择月份查询该月有付款的数据(间隔x月并提前5天付款)...
  9. linux常用命令速查手册
  10. android常用窗口动画,android 自定义dialog,窗口动画,
  11. MySQL设置字符编码
  12. 【语音隐写】基于matlab GUI LSB语音信号数字水印嵌入提取(带面板)【含Matlab源码 1676期】
  13. 数据结构与算法(java)
  14. openresty实现隧道代理
  15. 以连边为中心的功能连接用于个体识别
  16. Selenium滑块验证登录天猫淘宝网站
  17. 第十九节 串口通讯与终端设备
  18. vb.net 简单的方法模拟三体(有行星)
  19. javah 类com.xxxx.xxxx 找不到问题解决方法
  20. 一本修炼秘籍,带你打穿文件上传的21层妖塔(1)

热门文章

  1. 仿新浪微博 android,第一期--从零开始仿制新浪微博---android
  2. 鲤鱼精的python学习笔记(二)
  3. 公务员备考(十五) 行测 数量关系
  4. 央视调查真相:手机丢失后余额宝仍安全!
  5. 宇树科技Go1进阶版四足机器人开发记录
  6. 如何利用U盘制作启动盘安装系统
  7. 施耐德电气:以数字化利器,助力中国产业“双转型”
  8. 淘宝运营 促销活动天天特价报名操作方法,以及规则
  9. RxJava2总结之操作详解(三)
  10. 小卖家利好:淘宝C店将不显示差评