使用draw.polygon绘制多边形

时间:2015-01-05 10:30:56

标签: python oop draw polygon

import PIL.ImageDraw as ImageDraw,PIL.Image as Image, PIL.ImageShow as ImageShow 

#that s my class Point(2D)
class Pnt(namedtuple('Pnt', 'x y')):
    __slots__ = ()
    def __init__(self, *args):
        super(Pnt, self).__init__(*args)

这是顶点的矢量(凸多边形)

vertix = []
vertix.append(Pnt(50, 100))
vertix.append(Pnt(100, 200))
vertix.append(Pnt(200, 200))
vertix.append(Pnt(300, 0))
vertix.append(Pnt(250, -200))
vertix.append(Pnt(100, -100))

这里我想绘制多边形。问题是它没有居中,所以几乎一半的多边形都在框架之外。

im = Image.new("RGB", (600,800))
draw = ImageDraw.Draw(im)
draw.polygon(vertix, fill=230, outline=255)
im.show()

1 个答案:

答案 0 :(得分:2)

如果您想将多边形置于图像中心

1)确定多边形的边界框,

2)计算边界框中心的坐标

3)计算将边界框的中心平移到图像矩形中心所需的向量,

4)通过在步骤3中找到的向量平移旧多边形顶点的坐标来创建一个新的多边形。