import cv2
import numpy as np
import math
img = np.zeros((400, 400, 3), np.uint8)
points = []
base = (200, 200)
start_angle = 40
x = 120
y =35
#a*math.sin(36/180.0*math.pi)==b*math.sin(18/180.0*math.pi)
#b=a*math.sin(0.2*math.pi)/float(math.sin(0.1*math.pi))
#a*math.cos(36/180.0*math.pi)+b*math.cos(18/180.0*math.pi)=x
#a*(math.cos(0.2*math.pi)+(math.cos(0.1*math.pi)*math.sin(0.2*math.pi)/float(math.sin(0.1*math.pi))))=x
y=x/(math.cos(0.2*math.pi)+math.sin(0.2*math.pi)/math.tan(0.1*math.pi))
def get_point(angle, d, base):
angle=angle/180.0*math.pi
_x, _y = math.cos(angle) * d, math.sin(angle) * d
return [base[0] +_x, base[1] - _y]
for i in range(5):
_x, _y = math.cos(start_angle), math.sin(start_angle)
points.append(get_point(start_angle, x, base))
start_angle -= 36
points.append(get_point(start_angle, y, base))
start_angle-=36
pass
points=np.array([points],np.int32)
cv2.fillPoly(img, points, (0, 0, 255), cv2.LINE_AA)
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
![五角星图片](https://images2017.cnblogs.com/blog/519517/201801/519517-20180119180509553-1917966938.png)