如何找到多个点之间所有点的坐标?

问题描述

在这个问题中,我有几个要点,我们称它们为A,B和C(但可以更多),我知道它们在(x,y)中的位置。我在两个轴上的定义区域也都在[1-n]之间。我需要找到落在由A,B和C生成的多边形中的所有点。

由于我没有一组点,因此我想同时使用x和y轴的整个范围,即[1-n],因为这组可能的点落在A,B生成的多边形中,以及C,但我不确定这是否可以用于该功能

在这个阶段,我尝试了一些涉及以下功能的事情(其中一些我在SO中发现了其他问题)。

#define the range as the possible points falling in the polygon
allPointsX <- allPointsY <- c(1:2048)
#get some coordinates for three points generating the actual polygon (which in this case is a simple triangle)
xCoord <- c(127,120,152)
yCoord <- c(77,96,107)
#look for points into the polygon
points <- point.in.polygon(allPointsX,allPointsY,xCoord,yCoord)

但是我没有得到输出(全为零:all(points==0)),或者这不是我想要的。

有什么建议吗?我想念什么?

解决方法

您的代码正确。只是您所有的点都位于三角形之外。

library(tidyverse)

ggplot(mapping = aes(x,y)) +
  geom_point(data = tibble(x = allPointsX,y = allPointsY)) +
  geom_polygon(data = tibble(x = xCoord,y = yCoord)) +
  xlim(75,160) +
  ylim(75,160)

plot

这是位于三角形内部的一个点。

sp::point.in.polygon(127,78,xCoord,yCoord)
#> [1] 1

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...