我正试图找到一种方法来得到两个矩形相交的直线(三维空间中的两点)。
我遇到了这个问题:
Intersection between two rectangles in 3D
但这不是我的问题。在这个问题中,矩形仅被视为边界(周界),而我将矩形作为一个整体来查找(考虑图片框架与图片本身)。
我已经知道,在每种情况下,都会有一条交叉线(两点),或者根本没有交叉点。如果交叉点只是在边界上,因此只是一个点,在我的例子中,它可以被视为没有交叉点。
我的方案是,其中一个矩形表示一个“静态”曲面,它不能移动或更改。另一个代表一个“动态”表面,我必须适应它以避免交叉。
例子:
一旦我得到p1和p2,它们是三维空间中的点,我的目标是将动态矩形修改为三维多边形,该多边形将不再穿过静态矩形,如下所示:
所以你可以看到为什么“边缘交叉点”和我的情况无关。我把“真实”的交叉点变成了边缘交叉点,所以任何边缘交叉点都不需要我做任何事情。
我只想找一个公式,从两组4个点(矩形)开始,这将给我两个点的交点,或者告诉我没有(相关的)交点。
我在这个网站或其他网站上找到的每一个公式都不符合我的需要,或者不允许我输入任意的矩形(例如,我不能用一个使用平面的公式来解决我的问题,或者只将一个矩形视为4行)
当然,我正试图对它进行编码(用C),因此任何代码答案都是一个很大的帮助,但我相信,即使是一个纯数学的答案也足以让我从中生成代码,因此我将接受一个仅由伪代码或直接数学公式组成的答案,只要它们足够简单或解释清楚。我足以理解发生了什么。