找到垂直线及其与矩形的交点

时间:2012-07-25 13:02:18

标签: c# math

我有三点A,B& C和矩形如下所示。我想知道x,y坐标,其中A的光线与矩形相交,因为它必须垂直于BC的直线。我知道如何在BC上找到射线会拦截的点,但我似乎无法弄清楚如何从那里延伸以找到它将拦截矩形的点。插图:

enter image description here

这是我用来查找BC拦截的代码。

double k = ((By - Cy) * (Ax - Cx) - (Bx - Cx) * (Ay - Cy)) / ((By - Cy) * (By - Cy) + (Bx - Cx) * (Bx - Cx));
double Dx = Ax - k * (By - Cy);
double Dy = Ay + k * (Bx - Cx);

如何将Dx和Dy扩展到拦截矩形?

1 个答案:

答案 0 :(得分:0)

首先弄清楚如何找到两条线的交点(警惕并行情况)。

然后如何找到交叉点或光线,如果有的话。

然后如何找到光线与的交叉点(如果有的话)。

然后将其应用于来自A和四个边中的每一个的光线,并且您已完成。

提示:您可以将线条或光线表示为矢量和点。通过这种方式,您可以定义来自A的光线,而无需担心与BC线(可能不在B和C之间)的交点。

相关问题