如何确定一个给定的多边形内的点(像素)

本文关键字:多边形 像素 一个 何确定 | 更新日期: 2023-09-27 18:12:01

请考虑以下场景:

  • 保存图像的组件;
  • 由用户定义的多边形列表,用于在图像中创建区域;
  • 每个多边形由至少3个点组成的列表(它们的顺序决定了多边形的形状);
  • 每个点由一个(x, y)值对组成;
  • (x, y)对中的每个值都在0到1之间,表示该点在% (width, height)中对图像的位置;

我需要的是对多边形的所有区域执行一些处理,一次一个像素。在我的特定场景中,逐像素"扫描"整个图像并验证它是否在任何多边形内是不可接受的。奖励:如果一个像素已经被处理过,但它是多个多边形的一部分,不要再处理它。

我想也许我可以,给定任何多边形和图像(任意宽度x高度),生成多边形区域内的像素列表。这个问题更像是一个数学问题,但我被困住了。其他方法也很受欢迎!什么好主意吗?非常感谢!

如何确定一个给定的多边形内的点(像素)

你需要的是一个多边形光栅化器,它给出了多边形内的所有像素,例如http://alienryderflex.com/polygon_fill/

如果你想结合多边形来分解出双像素,那么我建议http://www.angusj.com/delphi/clipper.php

计算所有多边形的并集,并将它们作为正的和非零缠绕规则相加,或任何其他你想发布在多边形上的规则(仅当它们是自重叠时相关)

参见栅格化二维多边形。在这种情况下,您可以在特定的像素上执行您的流程,而不是将每个像素设置为特定的颜色。