我有一个由角度α定义的给定线R。 R通过我的飞机的起源。我也有一个矩形,具有已知的宽度和高度。矩形的原点左下角。
一条与R平行的新线由距R的距离L定义(以A,B和C为例)。我想找出新线与矩形相交的点(如线A的P1和P2,B的P3和P4,以及C的P5和P6)。
找到它的最佳方法是什么?
我有一个由角度α定义的给定线R。 R通过我的飞机的起源。我也有一个矩形,具有已知的宽度和高度。矩形的原点左下角。
一条与R平行的新线由距R的距离L定义(以A,B和C为例)。我想找出新线与矩形相交的点(如线A的P1和P2,B的P3和P4,以及C的P5和P6)。
找到它的最佳方法是什么?
使用此页 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))只是一个垂直于你的线的单位长度矢量,所以你只需将它添加到形成原始线的两点上。
最好的方法可能是http://math.stackexchange.com/ :) – sth 2010-08-26 14:28:39
L如何为R的每一边定义? R可以具有负斜率还是α始终为0-90度? – phkahler 2010-08-26 17:25:41