gpt4 book ai didi

r - 使用 R 中的 pip2d 函数,我们如何知道顶点的正确 'order'?

转载 作者:行者123 更新时间:2023-12-04 15:08:01 25 4
gpt4 key购买 nike

我是 R 的新手,我想确定一个点是否包含在多边形内。我正在使用 R 函数 pip2d 来执行此操作。我了解该函数的基本原理,但我无法确定将顶点放入多边形矩阵的适当顺序。由于我要在大量数据上迭代该函数,因此我需要真正理解这部分,以免以后遇到问题。

第一次尝试

这是我第一次尝试时所做的:

poly1 <- rbind(c(14,36), c(14,63), c(25,63), c(25,36))
points <- rbind(c(20,45), c(20,70), c(35,45), c(35,70))
pip2d(poly1, points)

有了这些坐标,我期待函数返回这个输出:1, -1, -1, -1,这意味着点 (20,45) 在多边形。

相反,我得到了这个:-1, -1, 1, -1 这对我来说没有任何意义。

第二次尝试

我尝试了一下,改变了顶点的顺序,但保持了相同的多边形:

poly1 <- rbind(c(14,36), c(25,36), c(25,63), c(14,63))
points <- rbind(c(20,45), c(20,70), c(35,45), c(35,70))
pip2d(poly1, points)

此更改为我提供了预期的输出:1, -1, -1, -1

第一次尝试的顺序和第二次尝试的顺序有什么区别?

谢谢

最佳答案

这是由于 convention used to define polygon interior or polygon exterior .
尽管 pip2d 文档中没有明确指定,但阅读引用文章表明此处使用的约定是“右手定则”。

用右手的手指跟随顶点序列:

  • 如果你的拇指指向你(你正在逆时针转动),你手中的就是多边形的内部
  • 如果你的大拇指指向相反的方向,你手中的是一个不属于多边形的洞

关于r - 使用 R 中的 pip2d 函数,我们如何知道顶点的正确 'order'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65725970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com