标签: intersection

python中3D多边形的交点

是否有任何开源工具或库(最好是在 python 中)可用于与从 ESRI shapefile 读取的 3D 几何执行大量交集?大多数测试将是简单的线段与多边形。

我研究了 OGR 1.7.1 / GEOS 3.2.0,虽然它正确加载了数据,但结果交叉点不正确,而且大多数其他可用工具似乎都建立在这项工作上。

虽然 CGAL 本来是一个替代方案,但它的许可证并不合适。Boost 通用几何库看起来很棒,但 api 很大,而且似乎不支持 wkt 或 wkb 开箱即用的阅读器。

python geometry intersection shapefile

4
推荐指数
2
解决办法
7657
查看次数

根据角度计算从矩形中的点到边缘的向量

据丹尼尔说,在他的回答中,没有简单的方法可以修改下面的函数,所以我硬着头皮从头开始。解决方案如下(作为答案)。实际上,请忽略我的回答。参见 Tom Sirgedas 的回答,它要短得多。


我需要修改这里找到的解决方案:根据半径计算从正方形中心到边缘的向量,从矩形中心计算向量,以适用于矩形内的任何点。

这是以前的解决方案,来自链接:

    double magnitude;
    double abs_cos_angle= fabs(cos(angle));
    double abs_sin_angle= fabs(sin(angle));
    if (width/2*abs_sin_angle <= height/2*abs_cos_angle)
    {
            magnitude= width/2/abs_cos_angle;
    }
    else
    {
            magnitude= height/2/abs_sin_angle;
    }

    double check_x= x + cos(angle)*magnitude;
    double check_y= y + sin(angle)*magnitude;
Run Code Online (Sandbox Code Playgroud)

check_x 和 check_y 返回矩形边缘上的点,从中心绘制的线将与该点相交。

我上学有一段时间了,所以我盲目地尝试用我感兴趣的点替换 width/2 和 height/2 。不幸的是,这不起作用。

有任何想法吗?

预计到达时间:

如果线在顶部或左侧与矩形相交,则这种盲目修改总是会返回正确的结果。根据起始点所在的象限,当线与右侧或底部相交时,它返回一个太远或太近的点。

.net math 2d intersection vector

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

检测重叠日期重复规则

我正在使用一个看起来像 Google 日历的应用程序,但有一个主要区别:事件不应与其他事件有交叉。这意味着没有两个事件可以共享相同的时间,即使是分钟粒度。这对于仅存储会议的日历特别有用,因为不可能同时参加两个会议。

就像 Google 日历一样,可以使用重复规则(例如,每个周五和周日上午 10 点到下午 13 点)创建事件。因此,我想仅使用rrules(python-dateutil 模块)来检测重叠事件,而不需要创建 N 个日期时间对象并检查每个对象的交集。

是否可以仅使用 rrules 来检测重叠日期?另一个库中是否已经实现了类似的功能?

python intersection interval-intersection python-datetime python-dateutil

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

从python中的元组或集合列表中查找不相交的集合

问题是:我有一个元组列表(如果需要,也可以设置)。例如:

a = [(1, 5), (4, 2), (4, 3), (5, 4), (6, 3), (7, 6)]
Run Code Online (Sandbox Code Playgroud)

我想找到的是一个列表

r = [(1, 5, 4, 2, 3, 6, 7)]
Run Code Online (Sandbox Code Playgroud)

因为一旦所有集合放在一起,交集就不是空的。

例如

a = [(1, 5), (4, 2), (4, 3), (5, 4), (6, 3), (7, 6), (8, 9)]
Run Code Online (Sandbox Code Playgroud)

结果应该是

r = [(1, 5, 4, 2, 3, 6, 7), (8, 9)]
Run Code Online (Sandbox Code Playgroud)

希望问题很清楚。那么在python中最优雅的方法是什么,如果有的话?

干杯

python intersection graph-theory set connected-components

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

如何使用lodash intersectionWith在具有不同结构的两个数组中比较并找到具有相同值的相同属性?

例如,我有两组数组

arr1 = [
  {
    myName: 'Adam',
    mySkill: 'CSS',
  },
  {
    myName: 'Mutalib',
    mySkill: 'JavaScript',
  },
];

arr2 = [
  {
    myName: 'Adam',
    myWeight: '112',
  },
  {
    myName: 'Habib',
    myWeight: '221',
  },
];
Run Code Online (Sandbox Code Playgroud)

我尝试比较它们,并选择myName与 lodash 的intersectionWith函数相同的值。但一直无法做到

newList.push(intersectionWith(arr1.arr2,isEqual])); 
Run Code Online (Sandbox Code Playgroud)

*在这种情况下,结果intersectionWith(arr1.arr2,isEqual])应该是Adam

关于我应该如何进一步进行的任何建议、解决方案和想法?

另外,以前我forEach在另一个中使用两个来实现这一目标......除非这是我可以对这种排序做的最好的方法?

javascript arrays sorting intersection lodash

4
推荐指数
2
解决办法
9876
查看次数

如何使用 jq 获取两个 JSON 数组的交集

给定数组 X 和 Y(最好都作为输入,否则,一个作为输入,另一个硬编码),如何使用 jq 输出包含两者共有的所有元素的数组?例如,f 的值是多少,使得

echo '[1,2,3,4]' | jq 'f([2,4,6,8,10])'
Run Code Online (Sandbox Code Playgroud)

会输出

[2,4]
Run Code Online (Sandbox Code Playgroud)

?

我尝试了以下方法:

map(select(in([2,4,6,8,10])))  --> outputs [1,2,3,4]
select(map(in([2,4,6,8,10])))  --> outputs [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

arrays json intersection jq

4
推荐指数
2
解决办法
3311
查看次数

找到图像的一系列曲线的交点:Matlab

我有一个带有一系列线条的图像,如下所示:

线路示例

我想知道是否有某种方法可以找到所有线的交点。

我正在检查另一个帖子,他们提供了一种找到交叉点的方法,但是一旦图像被分割,我想它有噪音或类似的东西......我将从一个简单的图像开始找到每个交叉点。

我的主要想法是解决“方程组”,但我认为对于具有许多交点的图像来说太难了,我不知道是否有任何方法可以找到所有交点。

matlab intersection image-processing curves

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

python中的平面交叉

我需要以 AX+BY+CZ+D=0 的形式计算两个平面的交点,并以两个 (x,y,z) 点的形式得到一条线。我知道如何进行数学计算,但我想避免发明自行车并使用有效且经过测试的东西。是否有任何库已经实现了这一点?试图搜索 opencv 和 google,但没有成功。

python intersection plane computational-geometry

4
推荐指数
2
解决办法
6597
查看次数

打字稿:在将可选类型与所需类型合并时创建联合而不是交集

当 optional 和 required 属性通过交集合并时, required 获胜

type A = { who: string }
type B = { who?: string }
// $ExpectType {who:string}
type R = A & B
Run Code Online (Sandbox Code Playgroud)

这可能会导致运行时错误,例如,在处理函数中的默认参数模式时

type Params = {
  who: string
  greeting: string
}

const defaults: Params = {
  greeting: 'Hello',
  who: 'Johny 5',
}

function greeting(params: Partial<Params>){
  // $ExpectType Params
  const merged = {...defaults, ...params}

  return `${merged.greeting.toUpperCase()} ${merged.who} !`
}

// @throws - TypeError: Cannot read property 'toUpperCase' of undefined
greeting({greeting:undefined, who: 'Chuck'}) …
Run Code Online (Sandbox Code Playgroud)

intersection unions typescript mapped-types

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

获取两个多边形相交区域的坐标(在 Python 中)

假设我有两个多边形,它们的名称和坐标是(在 Python 中):

p:[(1,1),(2,2),(4,2),(3,1)]
q:[(1.5,2),(3,5),(5,4),(3.5,1)]
Run Code Online (Sandbox Code Playgroud)

在我们人脑中,很容易知道这两个多边形相交并计算相交区域坐标,但我想让我们的机器知道如何计算相交区域的坐标。基本上,我想知道这项工作是否有一个简单明了的算法,如果已经有一个Python库可以做到这一点,那就完美了。

python geometry intersection

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