如何使用 setPixel 方法在形状内填充颜色?

How to Fill color inside shape using setPixel method?

我需要在自定义形状中填充颜色。我知道形状内的像素坐标之一,也知道形状的颜色。我需要通过了解像素坐标来计算形状内的所有像素,我该如何为此编写逻辑,有人可以帮忙吗。

  1. 对于已经渲染的形状

    使用洪水填充边界填充算法。例如见:

    注意大多数实现都是递归的,因此 stack/heap 较大区域溢出的风险很高。还有使用更安全的动态点列表的迭代方法。

  2. 矢量形式的多边形

    使用凸多边形填充。如果你有凹多边形,你需要先将它们分成凸多边形。另一种选择是三角测量。三角形和凸多边形光栅化是一样的见:

    • how to rasterize rotated rectangle (in 2d by setpixel)

    如果您需要三角测量,请参阅:

    如果形状非常复杂并且由于任何原因无法进行三角剖分,您可以尝试填充多边形边界框内多边形内的所有像素。为此你需要:

    • hit-test