import matplotlib.pyplot as plt import matplotlib.patches as patches import math def draw_star(ax,center_x,center_y,radius,color,rotation): degree=[72*i+rotation for i in range(5)] star_points=[(center_x+math.cos(math.radians(d))*radius,center_y+math.sin(math.radians(d))*radius) for d in degree] star_polygon=[ star_points[0],star_points[2], star_points[4],star_points[1], star_points[3],star_points[0] ] ax.add_patch(patches.Polygon(star_polygon,closed=True,color=color)) unit=0.5 width=30*unit height=20*unit fig,ax=plt.subplots(figsize=(width,height)) ax.set_xlim(0,width) ax.set_ylim(0,height) ax.axis('off') ax.add_patch(patches.Rectangle((0,0),width,height,linewidth=0,edgecolor='r',facecolor='r')) big_star_center_height=15*unit big_star_center_width=5*unit big_star_radius=3*unit draw_star(ax,big_star_center_width,big_star_center_height,big_star_radius,'yellow',90) small_stars_centers=[(10*unit,18*unit),(12*unit,16*unit),(12*unit,13*unit),(10*unit,11*unit)] small_star_radius=1*unit for cx,cy in small_stars_centers: rotation=math.degrees(math.atan2(big_star_center_height-cy,big_star_center_width-cx))-72 draw_star(ax,cx,cy,small_star_radius,'yellow',rotation) plt.show()
03-29
06-03
238
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-20
214
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-02
4456
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交