如何计算像素在形状范围内的百分比

问题描述 投票:0回答:1

我有一个2d网格,其中像素中心位于两个半网格线的交叉点,如下所示。 enter image description here

我也有一个在这个网格上绘制的形状。在我的例子中,形状是一个字形,并由段描述。每个段都有一个起点,终点和一些曲线外点。这些段可以是二次曲线或线。重要的是我能够知道构成轮廓轮廓的点和功能。

决定应该打开哪些像素的规则很简单:如果像素的中心落在形状轮廓内,则打开该像素。下图显示了应用此规则的示例。 enter image description here

现在我面临的问题与抗锯齿有关。我想做的是计算给定像素的面积在轮廓内的百分比。例如,在上图中,我在一个像素周围绘制了一个红色正方形,在形状内部约为15%。

这样做的目的是让我可以将该像素仅打开15%,从而为最终的光栅图像获得更清晰的边缘。

虽然我能够找到用于确定给定点是否属于多边形(ray casting)的算法,但我无法找到有关此类问题的任何信息。

有人可以指点我用一些算法来实现这个目标吗?如果我以错误的方式解决这个问题,请告诉我!

graphics antialiasing typography rasterizing
1个回答
0
投票

这听起来像是X,Y问题。

你想要一种方法来计算像素覆盖率的百分比,但根据你的问题,听起来你想做的是反多边形的多边形。

如果你只使用单色2D形状(即红色,蓝色,洋红色......正方形,线条,曲线......)一个非常简单的解决方案是创建你的图像并在之后模糊结果。

这将自动为您提供流畅的轮廓,并且易于以多种语言实现。

© www.soinside.com 2019 - 2024. All rights reserved.