相关疑难解决方法(0)

R测量距海岸线的距离

我有一组坐标:

d1 <- data_frame(
title = c("base1", "base2", "base3", "base4"),
lat = c(57.3, 58.8, 47.2, 57.8, 65.4, 56.7, 53.3),
long = c(0.4, 3.4, 3.5, 1.2, 1.5, 2.6, 2.7))
Run Code Online (Sandbox Code Playgroud)

我想知道坐标是落在陆地上,在海中还是在海岸线内3英里处。坐标应该在英国的某个地方,所以我知道我需要绘制英国的形状文件并将其绘制在上面。

我只是不知道如何测量这些点是落在海洋,陆地还是在距海岸2英里的地方。显然,从查看地图可以看出它们落在哪里,但是我想在数据集中添加另一列,如下所示:

 d2 <- data_frame(
title = c("base1", "base2", "base3", "base4", "base5", "base6", "base7"),
lat = c(57.3, 58.8, 47.2, 57.8, 65.4, 56.7, 53.3),
long = c(0.4, 3.4, 3.5, 1.2, 1.5, 2.6, 2.7),
where = c("land", "land", "sea", "coast", "land", "sea", "coast"))
Run Code Online (Sandbox Code Playgroud)
  • 请注意,d2列“ where”中的数据是说明性的,这些经纬度可能全部在陆地上,或其他

r geospatial r-sp geosphere

7
推荐指数
2
解决办法
1234
查看次数

判断点是否在区域内的算法

我最近正在开发一个项目,该项目有一个算法来判断一个点是否在一个区域内.

该区域如下所示:

{"state": "Washington", "border": [[-122.402015, 48.225216], [-117.032049, 48.999931], [-116.919132, 45.995175], [-124.079107, 46.267259], [-124.717175, 48.377557], [-122.92315, 47.047963], [-122.402015, 48.225216]]}
Run Code Online (Sandbox Code Playgroud)

如果该区域是矩形,则很容易.但是,该地区是不规则的.我的想法之一是检查一个点是否在该区域的每一行的"内部"侧.但是,表现并不好.任何的想法?

algorithm

6
推荐指数
1
解决办法
812
查看次数

用绳子连接板上钉子的算法

我想知道是否存在针对此问题的现有算法,或者是否可以将其映射到现有算法。

问题

您在 2D 环境中,想使用木板上的钉子制作一些弦乐艺术。为此,您从集合中的某个钉子开始,所有这些钉子都被不规则地放在板上。然后围绕钉板以离散的步骤线性移动,直到到达末端钉子。现在,您拧紧绳子并想知道绳子的路径以及绳子接触的钉子。

输出:拉紧的绳子及其钉子的路径。

示例:橙色路径是您绕着棋盘走的那条线。绿线是最后收紧的绳子。请注意,由于采用的路径,直接连接(如以钉子 X 开头)是非法的。

例子

另一个类比:你在树林里的一棵树上固定一根绳子。然后你以线性块在树上奔跑。你停在一棵树上,用力拉绳子,所以它被拉紧了。

这个问题似乎是一个最短路径问题,但有一个额外的约束,即只能使用一些节点/钉子。

algorithm graph shortest-path

6
推荐指数
1
解决办法
157
查看次数

确定点是多边形还是通过

我想弄清楚如何最好地做到这一点,如果我在2d平面上有一个矢量(由2个点组成的线),我如何确定它是否已通过多边形?

我知道我可以采取构成多边形的每一条线,看看是否有任何相交,但有更好的方法吗?

我已经阅读过这篇文章如何确定2D点是否在多边形内?这给了我一些想法,看看点是否在多边形内,但我需要看看它是否已经过了/相交了它.

我对技术细节并不感兴趣,我可能会在python中实现.

干杯

大卫

python geometry polygon point-in-polygon

5
推荐指数
2
解决办法
6815
查看次数

点在图的内部还是外部(顶点和边)?

我有一个由边和顶点G组成的图。中的顶点以二维坐标表示。该图是平面的,这意味着没有两条边相交。{E}{V}{V}

G有一些循环,假设一个点落在图的内部,如果它落入 的一个循环中G。循环示例可以是A---B---C---A,其中ABC是顶点,---是边。

现在给定一个点(x, y),如何确定它是在图内还是在图外?最好的方法或最简单的方法是什么?

我正在使用Python,如果有帮助的话。

更新:是的,所有边缘都是直线。

python algorithm graph-theory

5
推荐指数
1
解决办法
1417
查看次数

Circle Collider 2D 或 Box Collider 2D

我做了一些研究,但找不到最有效的答案,盒对撞机 2D 还是圆形对撞机 2D?

这个问题很快就得到了很好的答案,它说最快的是球体对撞机,其次是胶囊对撞机,然后是盒子对撞机,但我想知道 2D 对撞机。

2500 对撞机

  • 胶囊 453-481ms

  • 框 490-520ms

  • 球体 190-233ms

有没有人有关于计算机处理哪个更快的信息?谢谢!

unity-game-engine collider

5
推荐指数
1
解决办法
3693
查看次数

如何在 Jetpack Compose Vector 内缩放组

我正在 Jetpack compose 中为地图中的每个区域使用向量Groups 和s制作国家地图。Path我想要对特定区域的比例进行动画处理,但我很难设置正确的比例pivotX,并且pivotY属于Group应该动画变大和变小的正确区域,导致该区域也在 x 和 y 方向上移动。我的代码如下:

import androidx.compose.animation.core.EaseInOut
import androidx.compose.animation.core.RepeatMode
import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.infiniteRepeatable
import androidx.compose.animation.core.rememberInfiniteTransition
import androidx.compose.animation.core.tween
import androidx.compose.foundation.Image
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.Group
import androidx.compose.ui.graphics.vector.Path
import androidx.compose.ui.graphics.vector.PathNode
import androidx.compose.ui.graphics.vector.PathParser
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp

typealias Province = String

object Netherlands {
    val PathMap = mapOf<Province, List<List<PathNode>>>(
        "Overijssel" to listOf(
            PathParser().parsePathString(
                "m144.01 59.386-1.162 0.77493-0.77463 0.77492h-1.162-0.38732l0.38732 0.77492v0.38746h-0.38732l-0.38731 0.38746-0.77463 0.38746v-0.77492l-1.162 0.38746-0.38732 0.38746v-0.38746h-0.38731l-0.38732-0.38746-0.38731-0.77492v-0.77492l-0.77464 …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose

5
推荐指数
1
解决办法
271
查看次数

判断点是否在多边形内

我试图检测给定的点(x,y)是否在 n*2 数组的多边形中。但似乎多边形边界上的某些点返回它不包括在内。

def point_inside_polygon(x,y,poly):

    n = len(poly)
    inside =False

    p1x,p1y = poly[0]
    for i in range(n+1):
        p2x,p2y = poly[i % n]
        if y > min(p1y,p2y):
            if y <= max(p1y,p2y):
                if x <= max(p1x,p2x):
                    if p1y != p2y:
                        xinters = (y-p1y)*(p2x-p1x)/float((p2y-p1y))+p1x
                    if p1x == p2x or x <= xinters:
                        inside = not inside
        p1x,p1y = p2x,p2y

    return inside
Run Code Online (Sandbox Code Playgroud)

python polygon point-in-polygon

4
推荐指数
1
解决办法
6763
查看次数

如何在Javascript中检查点是否在多边形中

我遇到了这段 C 代码(我认为),这应该是检查点是否在 aconcaveconvex多边形内的巧妙方法,我想将其转换为 JS 等效函数以在我的 JS 程序中使用:

int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy)
{
  int i, j, c = 0;
  for (i = 0, j = nvert-1; i < nvert; j = i++) {
    if ( ((verty[i]>testy) != (verty[j]>testy)) &&
     (testx < (vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]) )
       c = !c;
  }
  return c;
}
Run Code Online (Sandbox Code Playgroud)

nvert:多边形的顶点数。是否在最后重复第一个顶点。
vertx、verty:包含多边形顶点的 x 和 y 坐标的数组。
testx、testy:测试点的 X 和 y …

javascript translate point-in-polygon

3
推荐指数
1
解决办法
7810
查看次数

计算点坐标是否在具有凹角和凸角的多边形内?Javascript

对不起我的英语,但我是意大利人...我想创建一个代码来计算点(具有两个坐标)是否在具有凹角和凸角的多边形内。我尝试了很少的代码,因为太难了..

 var polygon = [ 
  [71.99999994,38.999999714],
  [71.000000057,38.999999714],
  [69.999999998,38.999999714],
  [69.999999998,38.000000007],
  [68.999999939,38.000000007],
  [67.99999988,38.000000007],
  [67.99999988,38.999999714],
  [67.99999988,39.999999597],
  [68.999999939,39.999999597],
  [68.999999939,41.000000008],
  [69.999999998,41.000000008],
  [71.000000057,41.000000008],
  [71.99999994,41.000000008],
  [71.99999994,39.999999597],
  [71.99999994,38.999999714]
 ];

  var point= [68,38.5];
Run Code Online (Sandbox Code Playgroud)

我希望你能帮助我...

非常感谢

javascript arrays geometry point-in-polygon

3
推荐指数
1
解决办法
728
查看次数