Python turtle 画正多边形和多角形 |
您所在的位置:网站首页 › 海龟画图怎么画三角形 › Python turtle 画正多边形和多角形 |
Python turtle 画正多边形和多角形
作正多边形作正多角形计算内角画图代码
作棱角分明的多角形观察棱角分明的多角形简洁的结论代码代码存在的问题
高斯与正十七边形作出正十七角形
总结
原创文章,转载请申明出处
作正多边形
正n边形的内角:x = (n - 2) * 180° / n import turtle # 正n边形参数 n = 7 x = (n - 2) * 180 / n # 调整画笔速度 turtle.speed(1) # 调整画笔颜色 turtle.color('green') # 调整画笔宽度 turtle.pensize(3) for _ in range(n): # 画笔向前移动 turtle.forward(100) # 画笔方向顺时针旋转 turtle.right(180 - x) turtle.done()最简单的多角形就是五角星形 下面是我的方法,如果同学有自己的方法,欢迎在评论区分享。 如图所示,五角星中间有个正五边形,计算得正五边形的内角为108° 图中的小三角形是等腰三角形,所以五角星的锐内角为(180 - 2*72) = 36° 正六边形,正七边形……同理。 所以得到正n角形锐内角公式:z = 2x - 180 其中:x = (n - 2) * 180 / n 化简得:z = (1 - 4/n) * 180° 画图代码 import turtle # 正n角形参数 n = 7 # 计算正n边形内角 x = (n - 2) * 180 / n # 计算正n角形锐内角 z = (1 - 4/n) * 180 # 调整画笔速度 turtle.speed(1) # 调整画笔颜色 turtle.color('green') # 调整画笔宽度 turtle.pensize(3) for _ in range(n): """每次画一个角""" turtle.forward(50) turtle.right(180 - z) turtle.forward(50) turtle.left(180 - x) turtle.done()如果正n角形,每次都把两个相邻顶点连起来,那么随着n的增加,图像将趋近于⚪ 正19角形图如下:
不妨大胆猜测规律: n为奇数,棱角分明的正n边形锐顶角:w = (n-1)/2 * x - (n-3)/2 * 180 又 x = (n - 2)*180 / n 化简得:w = 180 / n 对于n为偶数,画图分析后,得出结论:w = 360 / n 简洁的结论棱角分明的正n角形锐顶角w w = 180 / n (n为奇数) w = 360 / n (n为偶数) 统一公式:w = 90/n * (3+(-1)n) 代码 import turtle # 正n角形参数 n = 7 # 计算棱角分明的正n角形锐内角 w = 90/n * (3 + (-1)**n) # 调整画笔速度 turtle.speed(3) # 调整画笔颜色 turtle.color('green') # 调整画笔宽度 turtle.pensize(3) for _ in range(n): """每次一条边加转向""" turtle.forward(150) turtle.right(180 - w) turtle.done()代码根据锐顶角来画图,而锐顶角由结论来计算。 棱角分明的正n角形锐顶角w w = 180 / n (n为奇数) w = 360 / n (n为偶数) 存在奇数n1,偶数n2使得w1==w2。如3和6、5和10、7和14…… 这些奇偶对得到的w相同,所以画出的图形相同。 想象中,正10角形是这样的: 李永乐老师讲正十七边形 下图是网友提供的高斯墓碑图: turtle画图形,方向旋转360°时,回到原来的方向,可以以此来计算循环画图次数。 画作多边形时,很多结论都是通过画图,肉眼观察出来的,缺乏严密证明。 最后,如果同学们发现文中错误,欢迎指正。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |