import math as m
import random as rdm
import turtle as ttl
from turtle import Turtle
import turtle_snow as sn
class Pattern(Turtle):
def draw_stars(self,x=0,y=0,r=1,heading=0):
'x,y为星星的中心点坐标;r为中心点到角点的距离;heading为画笔的角度'
self.color('yellow','yellow')
fd = 2*r*m.sin(m.radians(72))*(m.sin(m.radians(18)))/(
m.sin(m.radians(180-36-18)))
degree = heading + 72
newX = x - r*m.sin(m.radians(degree))
newY = y + r*m.sin(m.radians(90 - degree))
self.up()
self.setpos(newX,newY)
self.setheading(heading)
self.down()
self.begin_fill()
while True:
self.fd(fd)
self.left(72)
self.fd(fd)
self.right(144)
if abs(self.pos() - (newX,newY)) < 1:
break
self.end_fill()
self.hideturtle()
p = Pattern()
ttl.screensize(600,600,'skyblue')
p.getscreen().tracer(60,0)
for i in range(30):
x = 300 * rdm.random() * rdm.choice([-1,1])
y = 300 * rdm.random() * rdm.choice([-1,1])
r = rdm.randint(6,25)
heading = 72 * rdm.random()
p.draw_stars(x,y,r,heading)