如何判断一个点是否在纹理的多边形内

亚历山大·洛萨达(Alexander Lozada)

这似乎是一个相当被问到的问题-(先听我说!:)

我创建了一个带有perlin噪点的多边形,它看起来像这样:

在此处输入图片说明

我需要从这一系列点生成纹理。(我使用的是Monogame / XNA,但我认为这个问题有些不可知。)

无论如何,研究这个问题告诉我,许多人使用光线投射来确定一条线穿过多边形形状的次数(如果一次,则在内部,两次或零次,在外部)。这是有道理的,但是我想知道是否有更好的方法,因为我已经掌握了所有要点。对我要填充的每个像素进行小的射线投射似乎是多余的-这是唯一/最佳方法吗?

如果我有一个小的500px正方形图像需要填写,则需要对250,000个单独像素进行光线投射,这看起来非常糟糕。

尼科·谢特勒(Nico Schertler)

如果要对每个像素执行此操作,则可以使用扫掠线:

从最上方的坐标开始,然后从左到右检查水平射线。计算与多边形的所有交点,并按其x坐标对其进行排序。然后迭代该行上的所有像素,并记住您是进还是出。每当遇到交叉路口时,请切换到另一侧。如果有像素,请设置纹理。如果没有,请忽略它。对于每个可能的水平线,从上到下执行此操作。

相交的计算可以通过几种方式来增强。例如,通过使用诸如网格,四叉树等的加速度数据结构,或通过检查多边形之前的相交或接触边缘。然后,当您扫描线时,您将已经知道哪些边缘会导致相交。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何找出一个点是否在Matlab中的固定多边形中?

来自分类Dev

如何找出一个点是否在Matlab中的固定多边形中?

来自分类Dev

检查一个多边形是否在PHP中的另一个多边形内

来自分类Dev

如果找到一个点是多边形内 - JAVA JTS / AWT / geotools

来自分类Dev

传单绘制出多边形是否包含另一个多边形

来自分类Dev

如何扩展多边形直到其中一个边界到达某个点

来自分类Dev

如何检查一个表中的多边形是否与第二个表中的点和半径相交?

来自分类Dev

选择与另一个多边形相交(或完全在另一个多边形内)的多边形[R sf]

来自分类Dev

如何从多边形内的点获取多边形外的最近点?

来自分类Dev

如果我知道一个点周围的所有线,如何找到覆盖多边形

来自分类Dev

用另一个多边形分割一个多边形

来自分类Dev

用另一个多边形分割一个多边形

来自分类Dev

查找几何点是否在多个多边形之一内

来自分类Dev

将多个点放在列表中?- 创建一个多边形

来自分类Dev

如何搜索多边形内所有相交的点?

来自分类Dev

是否可以仅使用平行平移和比例缩放将一个多边形转换为另一个多边形?

来自分类Dev

在Boost.Geometry中将两个多边形合并为一个多边形:仅外部点,无孔

来自分类Dev

分割自相交多边形仅在Shapely中返回一个多边形

来自分类Dev

如何从R中的另一个shapefile中获取包含多边形质心的shapefile的多边形?

来自分类Dev

ORACLE PL / SQL中是否有一个函数可以计算多边形的面积?

来自分类Dev

识别点是否在多边形中

来自分类Dev

如何在python文件中从一个多边形移动到另一个多边形?

来自分类Dev

计算多边形内的折线的点

来自分类Dev

最佳实践,以检测点是否在2D多边形内(多边形的顶点在表上)

来自分类Dev

如何使用Leaflet一次仅编辑一个要素/多边形?

来自分类Dev

为给定的一组路点或一条线绘制一个多边形?

来自分类Dev

HTML 画布:如何创建一个填充有网格的多边形

来自分类Dev

对于点列表,点是否在任何多边形内

来自分类Dev

要添加一个点以展开多边形而不将其附加到Google Maps中?

Related 相关文章

  1. 1

    如何找出一个点是否在Matlab中的固定多边形中?

  2. 2

    如何找出一个点是否在Matlab中的固定多边形中?

  3. 3

    检查一个多边形是否在PHP中的另一个多边形内

  4. 4

    如果找到一个点是多边形内 - JAVA JTS / AWT / geotools

  5. 5

    传单绘制出多边形是否包含另一个多边形

  6. 6

    如何扩展多边形直到其中一个边界到达某个点

  7. 7

    如何检查一个表中的多边形是否与第二个表中的点和半径相交?

  8. 8

    选择与另一个多边形相交(或完全在另一个多边形内)的多边形[R sf]

  9. 9

    如何从多边形内的点获取多边形外的最近点?

  10. 10

    如果我知道一个点周围的所有线,如何找到覆盖多边形

  11. 11

    用另一个多边形分割一个多边形

  12. 12

    用另一个多边形分割一个多边形

  13. 13

    查找几何点是否在多个多边形之一内

  14. 14

    将多个点放在列表中?- 创建一个多边形

  15. 15

    如何搜索多边形内所有相交的点?

  16. 16

    是否可以仅使用平行平移和比例缩放将一个多边形转换为另一个多边形?

  17. 17

    在Boost.Geometry中将两个多边形合并为一个多边形:仅外部点,无孔

  18. 18

    分割自相交多边形仅在Shapely中返回一个多边形

  19. 19

    如何从R中的另一个shapefile中获取包含多边形质心的shapefile的多边形?

  20. 20

    ORACLE PL / SQL中是否有一个函数可以计算多边形的面积?

  21. 21

    识别点是否在多边形中

  22. 22

    如何在python文件中从一个多边形移动到另一个多边形?

  23. 23

    计算多边形内的折线的点

  24. 24

    最佳实践,以检测点是否在2D多边形内(多边形的顶点在表上)

  25. 25

    如何使用Leaflet一次仅编辑一个要素/多边形?

  26. 26

    为给定的一组路点或一条线绘制一个多边形?

  27. 27

    HTML 画布:如何创建一个填充有网格的多边形

  28. 28

    对于点列表,点是否在任何多边形内

  29. 29

    要添加一个点以展开多边形而不将其附加到Google Maps中?

热门标签

归档