2010-08-26 105 views
5

Schematic线与矩形之间的交点

我有一个由角度α定义的给定线R。 R通过我的飞机的起源。我也有一个矩形,具有已知的宽度和高度。矩形的原点左下角。

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

找到它的最佳方法是什么?

+0

最好的方法可能是http://math.stackexchange.com/ :) – sth 2010-08-26 14:28:39

+0

L如何为R的每一边定义? R可以具有负斜率还是α始终为0-90度? – phkahler 2010-08-26 17:25:41

回答

1
  1. 知道R(x)和距离L可以很容易地得到B(x)的
  2. 矩形可被表示为4行,即4简单的函数R1(x)中,R 2(X)中,R 3功能(x),R4(x)
  3. 您必须解决4个组合等式:{A(x); R1(x)},{A(x); R2(x)}等
  4. 检查发现的十字路口用直线表示矩形的边界是否使用矩形的基点,宽度和高度(以及一般情况下的倾斜角)
4

使用此页 http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/

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

请注意,您需要的实际点不是角度,但计算它们非常容易。 (0,0) - >(cos(a),sin(a))

线x距离它的距离,并行是 (0,0)+ x *(sin(因为您可以注意到,(sin(a)) - >(cos(a),sin(a))+ x *(sin(a), - cos(a))。 a),-cos(a))只是一个垂直于你的线的单位长度矢量,所以你只需将它添加到形成原始线的两点上。