2

我正在画布上绘制一大堆多边形,其中大部分与至少一个其他多边形共享一个边缘。我想通过勾勒出多边形来表示它是“特殊的”,但是由于重叠的边缘,多边形上的笔划往往会被另一个多边形部分覆盖,导致笔划看起来比在某些地方更薄。此外,根据绘制顺序,多边形的笔触可能几乎完全被周围的人覆盖。将多边形隔开并不是一个非常有吸引力的选择,因为多边形之间的可见间隙比这种“细笔划”问题要少得多。

我认为我正在寻找的效果可以通过将每个多边形生成为一对多边形来实现,这样一个多边形完全包含在另一个多边形中,并且这个较小的多边形的笔划运行到(但不重叠)外部多边形的中风。内部多边形将始终具有透明填充,并且仅当我希望表明现在的一对多边形是“特殊的”时才具有不透明的描边。

我的问题归结为:我怎样才能从外部多边形派生出这样一个内部多边形,或者如果失败了,我还能如何实现这种效果?

如果需要,可以将所讨论的多边形限制为正多边形,并且笔划是简单的 1 粗实线,没有花哨的斜接等。我希望能够在某个时候调整 Stroke 的粗细,但没有比这更好的了。

4

1 回答 1

1

我认为实际上有几种方法可以实现您想要的。

首先,按照您最初的想法,在原始多边形内绘制第二个略小的多边形;这不是一个坏主意。要回答有关如何生成较小多边形的原始问题:您可以找到每个多边形的质心,并将每个顶点偏移到多边形的质心点的距离的百分比,以获得较小的多边形。这应该会产生令人愉悦的效果。

您可以采用的另一种方法是使用 z 顺序,并将“较厚”的多边形偏移一个轻微的负 z 距离。

另一种方法是利用抽签顺序。最后绘制较厚的多边形,这将防止它们被周围的多边形透支。

另一个可能取决于您的需要的想法可能根本不绘制多边形,而是绘制一系列线条,只是加粗一些线条。

有很多选择供您尝试;希望你能找到一个效果很好的!

于 2009-06-25T04:20:06.460 回答