我正在使用opencv2
创建不同边的多边形。经过其他讨论,能够在给定半径和中心的情况下创建三角形,正方形,六边形,五边形等。以下代码可以做到这一点:
def polygon(center, sides, radius=1, rotation=0, translation=None):
one_segment = math.pi * 2 / sides
points = [
(int(round(center[0] + math.sin(one_segment * i + rotation) * radius, 0)),
int(round(center[1] + math.cos(one_segment * i + rotation) * radius, 0)))
for i in range(sides)]
if translation:
points = [[sum(pair) for pair in zip(point, translation)]
for point in points]
return points
这将返回一组可用于创建图像的顶点。但是,如何制作不规则三角形。即,创建锐角三角形,钝角三角形,直角三角形,等边三角形。
在给定类型的x坐标和y坐标以及三角形面积的范围内,我们如何生成顶点。我知道三角形不是唯一的,可以有很多。一旦掌握了要点,就可以使用
制作图像def makePolygon(center, sides, radius):
points = polygon(center, sides, radius)
pointsList = [list(a) for a in points]
p1 = np.array(pointsList)
img = np.zeros((256, 256, 3), dtype='int32')
cv2.fillPoly(img, pts =[p1], color=(255,0,0))
return img