今天我们聊一聊如何用python的turtle模块来画饼状图。
首先观察图形特征,发现 饼状图基本上都是由多个等腰三角形构成的,因此只要能用turtle这个模块画出一个等腰三角形,这项任务就完成了一大半了。
基本思路:
具体的代码如下:
import math
import turtle
def single(t, r=100, n=5):
inner_angle = 360 / n
# print(inner_angle)
bottom_angle = (180 - inner_angle) / 2
# print(bottom_angle)
edge = round(math.sin(inner_angle / 2 * 2 * math.pi / 360) * r * 2, 4)
# print(edge)
t.fd(edge)
t.lt(180 - bottom_angle)
t.fd(r)
t.lt(180 - inner_angle)
t.fd(r)
t.lt(180 - bottom_angle)
t.fd(edge)
t.lt(180 - 2 * bottom_angle)
def pies(t, r, n):
for i in range(n):
single(t, r, n)
t.pu()
t.fd(150)
t.pd()
bob = turtle.Turtle()
bob.pu()
bob.bk(250)
bob.pd()
pies(bob, r=50, n=5)
pies(bob, r=50, n=6)
pies(bob, r=50, n=8)
pies(bob, r=50, n=10)
turtle.mainloop()
运行过程和结果如下: