Math 直线与矩形的交点

Math 直线与矩形的交点,math,Math,我有一条给定的线R,由角度α定义。R穿过我飞机的原点。我也有一个矩形,有已知的宽度和高度。矩形的左下角位于原点上 平行于R的新线由距离R的L定义(以A、B和C为例)。我想找出新线与矩形相交的点(如线A的P1和P2,线B的P3和P4,线C的P5和P6) 找到它的最好方法是什么 知道R(x)和距离L,就可以很容易地得到B(x)的函数 矩形可以表示为4行,即4个简单函数R1(x)、R2(x)、R3(x)、R4(x) 你必须解4个组合方程:{A(x);R1(x)},{A(x);R2(x)},等等 使用矩

我有一条给定的线R,由角度α定义。R穿过我飞机的原点。我也有一个矩形,有已知的宽度和高度。矩形的左下角位于原点上

平行于R的新线由距离R的L定义(以A、B和C为例)。我想找出新线与矩形相交的点(如线A的P1和P2,线B的P3和P4,线C的P5和P6)

找到它的最好方法是什么

  • 知道R(x)和距离L,就可以很容易地得到B(x)的函数
  • 矩形可以表示为4行,即4个简单函数R1(x)、R2(x)、R3(x)、R4(x)
  • 你必须解4个组合方程:{A(x);R1(x)},{A(x);R2(x)},等等
  • 使用矩形的基点、宽度和高度(以及一般情况下的倾斜角度)检查发现的与直线的交点是否在矩形的边界内
  • 使用此页面

    给出了两条直线相交的公式。分别与构成矩形的4条线中的每一条相交,然后检查u_a(由矩形线参数化的相交位置)是否在正确的边界之间,以确保线不会在矩形外相交

    注意,这需要实际的点而不是角度,但是计算它们非常容易。 穿过原点的直线就是(0,0)->(cos(a),sin(a))

    线x距它的距离,平行 (0,0)+x*(sin(a),-cos(a))->(cos(a),sin(a))+x*(sin(a),-cos(a))


    因为正如你所注意到的,(sin(a),-cos(a))只是一个垂直于直线的单位长度向量,所以你只需将它添加到形成原始直线的两个点的顶部。

    最好的方法可能是:)L是如何为R的每一侧定义的?R是否有负斜率,或者阿尔法是否始终为0-90度?