如果一条线穿过矩形的中心,如何求矩形内部线的长度?

问题描述 投票:0回答:1

假设我有一个矩形,它的四个角是P0到P3,P0P1是它的长边,P2P3是它的短边。 4个点都是逆时针方向。

然后我有一条线穿过这个矩形的中心,它有一个特定的方向(你可以用L和X轴之间的角度作为theta来描述它)

我的问题是,如果我知道4个角的坐标和L的theta,我怎样才能得到矩形内线的长度?

解决方案:想象一下,您没有像 P0P1 这样的线段,而是通过点无限延伸的线。然后你可以计算四条线中每条线与L的交点,并取最接近原点的交点,所以min(intersections)。

geometry
1个回答
0
投票

考虑沿矩形边方向的坐标系。 该坐标系的原点是矩形的中心。

考虑在此坐标系上沿线 L 的单位方向向量

d
, 在这个问题中,我们总是可以使用绝对值作为 d 的 2 个分量,所以情况如下图所示。

我们需要知道的是“d的延长线与矩形的哪条边相交?”
这可以通过查看 CrossProduct( p, d ) 的符号来解决,其中 p 是矩形的角,如图所示。

交点是(

s
* d),我们可以求解这个比例因子
s
,因为我们知道矩形的大小。 这个比例值
s
是你想知道的值的一半(因为 d 是单位向量)。

© www.soinside.com 2019 - 2024. All rights reserved.