In [156]:
import matplotlib.pyplot as plt
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from shapely.geometry import Point, MultiPoint, MultiPolygon, Polygon, LinearRing
from descartes import PolygonPatch
import numpy as np

In [157]:
def star_plotting(center, radius):
    #http://www.mathalino.com/reviewer/plane-geometry/area-of-regular-five-pointed-star
    r_pent = np.sin(np.pi/10)/np.sin(0.7*np.pi)*radius
    original_dir = np.random.uniform(0, 2*np.pi)

    print(original_dir)
    angles = []
    for i in range(10):
        angles.append(i*2*np.pi/10+original_dir)
    print(angles)
    
    points = []
    for i in range(5):
        points.append((radius*np.sin(angles[2*i]),
                       radius*np.cos(angles[2*i]))
                      )
        points.append((r_pent*np.sin(angles[2*i+1]),
                       r_pent*np.cos(angles[2*i+1]))
                      )

    print(points)
    #[points]+[points[0]]
    poly = Polygon(points)
    return poly

In [158]:
star_poly = star_plotting(0, .1)


1.7764768617769657
[1.7764768617769657, 2.4047953924949246, 3.033113923212883, 3.661432453930842, 4.2897509846488004, 4.918069515366759, 5.546388046084718, 6.174706576802676, 6.803025107520635, 7.431343638238594]
[(0.097892222324148126, -0.020423339796408341), (0.025665034843403094, -0.028289332335529931), (0.010826609917408081, -0.099412195014979332), (-0.018973821931508209, -0.033150783079960153), (-0.091201009412253231, -0.041016775619081736), (-0.037391501693563353, 0.007801021638439631), (-0.067191933542479654, 0.074062433573458805), (-0.0041353970055131983, 0.037972079599489242), (0.049674110713176678, 0.086789876857010617), (0.034835685787181658, 0.015667014177561216)]

In [159]:
def plot_stars(stars):
    fig = plt.figure(1, figsize=(9, 6), dpi=90)#, frameon=False)
    canvas = FigureCanvas(fig)
    axes = fig.add_subplot(1, 1, 1, facecolor='#003399')
    fig.tight_layout(pad=0.)
    axes.set_xlim([-1.5, 1.5])
    axes.set_ylim([-1, 1])
    axes.axes.get_xaxis().set_visible(False)
    axes.axes.get_yaxis().set_visible(False)
    for star_poly in stars:
        star_patch = PolygonPatch(star_poly, color='#FFCC00')
        axes.add_patch(star_patch)
    return fig
fahne = plot_stars([star_poly])
#fig.savefig(fileName, transparent=True, bbox_inches='tight', pad_inches=0)



In [ ]: