opencv画五角星

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://www.cnblogs.com/cangling20041616/p/8318310.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值