来自两个 Line 对象的 WPF 交点坐标

Bec*_*lin 4 c# math wpf

我在 C# WPF 中有两个 Line 对象,我正在尝试构建一种方法来计算线相交的坐标(如果有的话)。在让自己头疼地提醒自己高中数学要这样做之后,我无法弄清楚如何将其映射到编程格式 - 有谁知道如何做到这一点?

非常感谢,贝基

S P*_*S P 5

我想你的线对象是由两点组成的。你应该做的是得到两条线的方程。

那么你应该解决以下方程:

方程线 1 = 方程线 2

计算直线的斜率:

    float _slope = 1e+10;
    if ((p2.x - p1.x) != 0)
        _slope = (p2.y - p1.y) / (p2.x - p1.x);
Run Code Online (Sandbox Code Playgroud)

p1 = 线路的第 1 点 p2 = 线路的第 2 点

直线方程:

y = ax + b

a = 你计算的斜率 b = 相交

求解方程:

    a1 = p1.y - b1 * p1.x;
    a2 = q1.y - b2 * q1.x;

    x = (a1 - a2) / (b2 - b1);
    y = a2 + b2 * x;
Run Code Online (Sandbox Code Playgroud)

变量:

  • b1 = 斜线 1
  • b2 = 斜线 2
  • q1 = 第二行的第 1 点

所以,x 和 y 是两条线相交点的坐标

  • 考虑:浮动斜率 = float.MaxValue; (2认同)