裁剪多边形以仅在 Love2D 的圆圈内绘制

Clipping a polygon to only draw within a circle in Love2D

我正在尝试绘制一个圆,上面绘制了填充的、随机生成的多边形,但我不知道如何制作它,以便仅在圆的顶部绘制多边形。

这里有一个模型作为例子:

我已经实现了在圆上绘制随机多边形,使用 love.graphics.polygon() 函数和一组随机生成的点,但我正在寻找一种在绘制它们时剪裁它们的方法它们只填充在圆圈的顶部。

这是我到目前为止实际得到的:

所以,我的问题是:是否有一个函数可以在 love.draw 函数中调用,该函数可以剪切绘制在范围之外的多边形部分,或者它会比那个更难修复?

提前致谢!

事实证明,我本可以花一分钟时间查看 love.graphics 文档。无论如何,love.graphics.stencil() 函数及其对应的 love.graphics.setStencilTest() 正是我所需要的。

您可以将圆的绘制函数传递给 love.graphics.stencil() 函数,并且使用 setStencilTest(),您可以使其不在该圆函数之外绘制像素。该文档有一些很好的例子。