Graphics 如何按指定数量填充多边形?

Graphics 如何按指定数量填充多边形?,graphics,polygon,Graphics,Polygon,这是一个看似简单的问题,但我很难让它正常工作 我有一个由顶点列表定义的(非凸)多边形。我想创建另一个多边形,其中每个点向外移动一定量。我试过了,但没有达到我想要的效果 我希望每一点都在原点之外。但“外部”似乎很难计算,因为只有一系列的点。有没有一种简单的方法可以做到这一点?似乎需要多边形的偏移量,也就是说,位于多边形外部且与多边形的距离为某个给定数字的所有点的集合。但是,偏移不是多边形 也许您可以根据多边形的质心缩放所有顶点。我认为您是对的,内部和外部很难定义为全局属性。但对于每个组件线段,都

这是一个看似简单的问题,但我很难让它正常工作

我有一个由顶点列表定义的(非凸)多边形。我想创建另一个多边形,其中每个点向外移动一定量。我试过了,但没有达到我想要的效果

我希望每一点都在原点之外。但“外部”似乎很难计算,因为只有一系列的点。有没有一种简单的方法可以做到这一点?

似乎需要多边形的偏移量,也就是说,位于多边形外部且与多边形的距离为某个给定数字的所有点的集合。但是,偏移不是多边形

也许您可以根据多边形的质心缩放所有顶点。

我认为您是对的,内部和外部很难定义为全局属性。但对于每个组件线段,都有一个清晰的左右定义(至少在遍历路径的上下文中)


因此,我认为如果逆时针遍历线段,并在当前线段的右侧添加偏移线段,这可能接近您想要的。或顺时针移动并添加向左偏移的线段。它可能会在凹面处产生退化的形状。

我认为这将涉及在每条线的法向量方向上创建几像素以外的线。@lhf它确实看起来像是你提到的问题的重复。谢谢你的链接!我认为这(缩放所有顶点wrt centroid)就是我在上图中尝试的。除非我做了一些愚蠢的事情,否则它不会导致所有的点都在原始点之外。