标签: intersection

直线和正方形之间的交点

我在二维空间中有一个正方形(宽度=高度)。该正方形当前由两个点定义:BottomLeft(X1,Y1) 和 TopRight(X2,Y2)。

正方形是轴对齐的,因此找到其他两个角就像 (X1, Y2) 和 (X2, Y1) 一样简单。

我还有两点——一是总是在方阵内,二是肯定在方阵外。它们不一定位于广场的中心——它们可以位于任何地方。我也知道他们的坐标。

我需要的是找到这两点定义的线段与正方形边之间的交点。我还想知道我与正方形的哪一边相交。给我带来麻烦的是线对角线延伸并且靠近正方形角的情况 - 例如它可以与顶线或边线相交。

暴力法是尝试计算正方形每条边的交点并检查它是否存在。可以通过计算第二个点相对于正方形的位置并丢弃两条线来优化它(例如,如果 X 和 Y 坐标都增加,则无需检查正方形的底部和左侧)。

我想知道是否有更好/更快的解决方案来解决我的问题?我会用Java写

java geometry intersection square line-segment

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

postGIS 多边形内的点

我正在使用 postgres/postGIS 我有两个我有兴趣查询的表:

 table A: contains geometry values as (POINT)  such as (P1, P2,P3,...) 
 table B: contains geometry values as (POLYGON) such as (Polygon 1, polygon 2, ...)
Run Code Online (Sandbox Code Playgroud)

我试图找到每个点位于哪个多边形内。我最有可能寻找的答案列出了点及其包含的多边形,例如:

观点 多边形
P1 多边形3
P2 多边形1

我尝试过以下内容:

SELECT *
FROM area, points 
WHERE st_intersects(area.polygons, points.point) ;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: ERROR: ST_Intersects: Operation on mixed SRID geometries (Polygon, 4326) != (Point, 8307)

非常感谢您的帮助。

postgresql geometry postgis intersection

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

如何在 R 中获得两个交叉 ecdf 的交点?

我有两个使用以下代码的 ecdf 图:

ecdf1 <- ecdf(data1)
ecdf2 <- ecdf(data2)
Run Code Online (Sandbox Code Playgroud)

这些情节相互交叉。我需要获取交叉点(交点)坐标。我应该如何在 R 中执行此操作?

intersection r cdf ecdf

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

需要一种3D矢量交叉算法

我有2个向量,每个向量由2 Point3D(原点和方向)定义.我需要找出他们交叉点的意义.总是欢迎一点帮助.我将发布我的功能,这给了我错误的输出.

public static CurvIntersect3D Intersect2Linii3D (Vector3D dr1, Vector3D dr2) {
    CurvIntersect3D result = new CurvIntersect3D(0, null);

    double x = Math3D.VectorNorm3D(dr1.getDirectie());
    double t = Math3D.VectorNorm3D(dr2.getDirectie());
    double cosa = (dr1.getDirectie().getX()*dr2.getDirectie().getX() + dr1.getDirectie().getY()*dr2.getDirectie().getY() + dr1.getDirectie().getZ()*dr2.getDirectie().getZ()) / (t*x);
    Punct3D p1 = dr1.getOrigine();
    Punct3D p2 = new Punct3D(), p3 = new Punct3D();
    for (int i=0; i<3; i++)
    {
        p2.set(i, dr1.getOrigine().get(i) + dr1.getDirectie().get(i));
        p3.set(i, dr1.getOrigine().get(i) + dr2.getDirectie().get(i));
    }

    Matrici.Matrice3x3 rot = Math3D.GetMatriceRotatie(p1, p2, p3);
    Punct3D orig = new Punct3D();
    for (int i=0; i<3; i++) …
Run Code Online (Sandbox Code Playgroud)

3d geometry intersection vector line

0
推荐指数
1
解决办法
4374
查看次数

减号,联盟和交叉点

我目前正在做以下作业:

CREATE TABLE T_1
(COURSE_NO CHAR(8) PRIMARY KEY,
COURSE_NAME CHAR(50) );

CREATE TABLE T_2
(COURSE_NO CHAR(8),
COURSE_NAME CHAR(50) );

CREATE TABLE T_3
(COURSE_NO CHAR(8),
STUDENT_ID CHAR(15),
GRADE CHAR (2));

INSERT INTO T_1
VALUES
('CS100','Data Structures'),
('CS200','Object Oriented Programming'),
('CS300','Distributed Systems'),
('EE100','Circuit Analysis'),
('EE200','VLSI Design'),
('EE300','Packet Switching Networks');

INSERT INTO T_2
VALUES
('EE100','Circuit Analysis'),
('EE200','VLSI Design'),
('EE300','Packet Switching Networks'),
('MA100','Calculus'),
('MA200','Advanced Calculus'),
('MA300','Number Theory');

INSERT INTO T_3
VALUES
('CS100','150-70-5879','B'),
('CS100','280-90-8766','A'),
('EE100','430-76-6858','B'),
('CS200','720-60-5000','B');
Run Code Online (Sandbox Code Playgroud)

我被要求指定给定的元组:(T1-T2)联合(T2-T1)联合(T1与T2相交).

现在我知道MySQL使用了,或者为减号运算符加入,我能够以自己的方式处理每个减号,如:

SELECT *
FROM T_1
LEFT JOIN T_2 …
Run Code Online (Sandbox Code Playgroud)

mysql intersection unions

0
推荐指数
1
解决办法
1万
查看次数

找到任意两个函数的交集 - 求解联立方程

想象一下,有两个功能.您需要找到该功能的交叉点.您绝对不想尝试检查所有x值f(x)==g(x).通常在数学中,您可以创建从中派生的联立方程f(x)==g(x).但我认为如何用任何编程语言实现方程式都没办法.
再一次,我在寻找什么:

  1. 求解方程的概念算法.
  2. 同时和二次方程式相同.

我相信应该有一些使用函数派生的解决方法,但我最近在学校学习了派生概念,我不知道如何在这种情况下使用它.

algorithm math intersection conceptual

0
推荐指数
1
解决办法
5036
查看次数

如果出现任何交叉点(以有效的方式),我如何才能获得2D列表项的并集?

我在python中有2D列表

list = [[9, 2, 7], [9, 7], [2, 7], [1, 0], [0, 5, 4]]
Run Code Online (Sandbox Code Playgroud)

如果出现任何交叉点,我想获得列表项的联合.例如[9, 2, 7],[9, 7],[2, 7]具有多于一个位的交叉点.这种联盟将是[9,2,7].

如何以有效的方式获得如下最终列表?

finalList = [[9,2,7], [0, 1, 5, 4]]
Run Code Online (Sandbox Code Playgroud)

NB数字顺序并不重要.

python intersection list set

0
推荐指数
1
解决办法
348
查看次数

数学/物理:给定角度和矢量找到交点?

我有两个对象,我需要确定它们是否会在将来的某个时间发生碰撞.假设两个物体是卡车,每个都在它们的独立车道上.第一辆卡车想改变车道,但卡车是否会碰撞?

两个物体都向前移动,但只有第一个物体有一个角度.物体以不同的,不同的速度移动,但只知道第二物体的速度.此外,这两个对象在不同的坐标系上运行(意味着每个对象都有一个新的原点),对象之间的距离也不同.

我没有第一个物体的矢量,但是我确实有一个相对于x轴的角度(不固定).

对于第二个对象,我有一个向量,它是直的.

请参考下图:

碰撞

如何根据这些标准找到交叉点?我想这个角度是一条无限的线,它在某个点上会越过第二个物体的矢量幅度.我不认为这比计算两条线的交点更直接.

包起来:

  • 第二个物体的速度是已知的(但是变化)
  • 已知第一个对象的角度
  • 物体之间的距离是已知的(但是变化的)
  • 第一个物体在x方向上的加速度是已知的(但由于限制,我不能用它来找到速度)

intersection vector angle collision-detection

0
推荐指数
1
解决办法
1464
查看次数

如何在PHP中保留数组中的特定键?

我有一个关联数组

$preans[$id]...
Run Code Online (Sandbox Code Playgroud)

它有很多与之相关的数据$id.

我还有另一个阵列

$affected_feature_ids[$id] = TRUE;
Run Code Online (Sandbox Code Playgroud)

现在我想$preans只保留那些存在的索引$affected_feature_ids.

怎么做?

php arrays intersection hashset

0
推荐指数
1
解决办法
47
查看次数

两个列表的共同元素,包括重复

我有两个列表:

a = ['item.1','item.2','item.3', 'another_item'] 
b = ['item.4','item.5', 'another_item']
Run Code Online (Sandbox Code Playgroud)

我将元素拆分为最终

a = ['item', 'item', 'item', 'another_item']
b = ['item', 'item', 'another_item']
Run Code Online (Sandbox Code Playgroud)

我想找到实际的共享项目,最后得到

c = ['item','item', 'another_item']
Run Code Online (Sandbox Code Playgroud)

set(a).intersection(b)会回报我['item', 'another_item']

c = [x for x in list1 if x in list2] 退货 ['item', 'item', 'item', 'another_item']

我的列表实际上是由其他出现多次的项目组成的,因此,我不能仅仅找出哪个列表包含“ item”出现次数最少的列表并对其进行迭代(如果它包含更多的“ another_item”出现次数)。我还能尝试什么?

python intersection list

0
推荐指数
1
解决办法
338
查看次数