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()
答案 0 :(得分:2)
如果您想将多边形置于图像中心
1)确定多边形的边界框,
2)计算边界框中心的坐标
3)计算将边界框的中心平移到图像矩形中心所需的向量,
4)通过在步骤3中找到的向量平移旧多边形顶点的坐标来创建一个新的多边形。