如何使用 setPixel 方法在形状内填充颜色?
How to Fill color inside shape using setPixel method?
我需要在自定义形状中填充颜色。我知道形状内的像素坐标之一,也知道形状的颜色。我需要通过了解像素坐标来计算形状内的所有像素,我该如何为此编写逻辑,有人可以帮忙吗。
对于已经渲染的形状
使用洪水填充或边界填充算法。例如见:
注意大多数实现都是递归的,因此 stack/heap 较大区域溢出的风险很高。还有使用更安全的动态点列表的迭代方法。
矢量形式的多边形
使用凸多边形填充。如果你有凹多边形,你需要先将它们分成凸多边形。另一种选择是三角测量。三角形和凸多边形光栅化是一样的见:
- how to rasterize rotated rectangle (in 2d by setpixel)
如果您需要三角测量,请参阅:
如果形状非常复杂并且由于任何原因无法进行三角剖分,您可以尝试填充多边形边界框内多边形内的所有像素。为此你需要:
- hit-test
我需要在自定义形状中填充颜色。我知道形状内的像素坐标之一,也知道形状的颜色。我需要通过了解像素坐标来计算形状内的所有像素,我该如何为此编写逻辑,有人可以帮忙吗。
对于已经渲染的形状
使用洪水填充或边界填充算法。例如见:
注意大多数实现都是递归的,因此 stack/heap 较大区域溢出的风险很高。还有使用更安全的动态点列表的迭代方法。
矢量形式的多边形
使用凸多边形填充。如果你有凹多边形,你需要先将它们分成凸多边形。另一种选择是三角测量。三角形和凸多边形光栅化是一样的见:
- how to rasterize rotated rectangle (in 2d by setpixel)
如果您需要三角测量,请参阅:
如果形状非常复杂并且由于任何原因无法进行三角剖分,您可以尝试填充多边形边界框内多边形内的所有像素。为此你需要:
- hit-test