假设我有一个矩形,它的四个角是P0到P3,P0P1是它的长边,P2P3是它的短边。 4个点都是逆时针方向。
然后我有一条线穿过这个矩形的中心,它有一个特定的方向(你可以用L和X轴之间的角度作为theta来描述它)
我的问题是,如果我知道4个角的坐标和L的theta,我怎样才能得到矩形内线的长度?
解决方案:想象一下,您没有像 P0P1 这样的线段,而是通过点无限延伸的线。然后你可以计算四条线中每条线与L的交点,并取最接近原点的交点,所以min(intersections)。
考虑沿矩形边方向的坐标系。 该坐标系的原点是矩形的中心。
考虑在此坐标系上沿线 L 的单位方向向量
L
d
我们需要知道的是“d的延长线与矩形的哪条边相交?” 这可以通过查看 CrossProduct( p, d ) 的符号来解决,其中 p 是矩形的角,如图所示。
交点是(
s