opencv2-为三角形的类型创建随机顶点-

时间:2018-10-18 12:17:09

标签: python geometry coordinates opencv-python

我正在使用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

0 个答案:

没有答案