我正在尝试
bivrp::is_point_inside
检查一个点是否在正方形内,但无论我尝试什么,我总是得到FALSE,即使在最明显的情况下......我做错了什么?
我的代码:
polyg=data.frame(c(15, 15, 0, 0), c(15, 0, 0, 15))
point=c(5,5)
bivrp::is_point_inside(point, polyg)
我认为我们都同意
5,5
处的点将位于坐标为15,15
、15,0
、0,0
、0,15
的正方形内,但是:
> bivrp::is_point_inside(point, polyg)
[1] FALSE
我在这里做错了什么吗?
注意我优先使用
bivrp::is_point_inside
;我有一些旧代码,我使用过它并且从来没有任何问题,如果它不再正常工作,我将不得不修改旧代码。
编辑
这个函数显然不起作用...有人可以建议一个具有相同功能(检查点是否在多边形内)但有效的函数吗?我将不得不使用它修改我的旧代码......
好消息。我刚刚用
secr
测试了你的示例,它似乎工作得很好。
这是示例代码:
library(secr)
polyg <- data.frame(x = c(0, 15, 15, 0),
y = c(0, 0, 15, 15))
# Here is your point
point_inside <- matrix(c(5, 5), ncol = 2)
secr::pointsInPolygon(point_inside, polyg)
# Here is an arbitrary point outside
point_outside <- matrix(c(16, 5), ncol = 2)
secr::pointsInPolygon(point_outside, polyg)
希望这有帮助。