xda*_*mon 6 java linear-equation
我试图将下面的等式转换为编程代码.目的是找到两条线的交叉点.并告诉pront
(y1 - y2)x - (x1 - x2)y =(y1 - y2)x1 - (x1 - x2)y1
(y3 - y4)x - (x3 - x4)y =(y3 - y4)x3 - (x3 - x4)y3
我被告知使用cramers规则,但cramers规则有6个diff变量.我将从4个不同的点开始作为8个变量(x1,y1,x2,y2,x3,y3,x4,y4)
我正在使用Java.任何帮助,将不胜感激.本网站上的所有问题都是针对不同类型的线性方程式,代码很复杂,我找不到任何与我相关的东西.
这就是我所拥有的,并不多,但从上面的等式转变为可编程的东西真的让我感到困惑.
import java.util.Scanner;
public class E325 {
public static void main(String[] args) {
/*
* The purpose of this program is to find the intersect
* of two lines given by the user by four points
*
* Get the four points. x1,y1 x2,y2 x3,y3 x4,y4
*/
Scanner input = new Scanner(System.in);
System.out.print("Enter x1 y1, x2 y2, x3 y3, x4 y4: ");
double x1 = input.nextDouble();
double y1 = input.nextDouble();
double x2 = input.nextDouble();
double y2 = input.nextDouble();
double x3 = input.nextDouble();
double y3 = input.nextDouble();
double x4 = input.nextDouble();
double y4 = input.nextDouble();
}
}
Run Code Online (Sandbox Code Playgroud)
我不懂矩阵,所以我会用不同的方式解决它。
您知道足以计算每行的 m 和 b
m = (y2-y1)/(x2-x1)
b = y1 - m(x1)
计算一条线的 m 和 b,计算另一条线的 m' 和 b'。
现在在交点处,两条线上的 x,y 相同,因此 y = mx + b 且 y = m'x + b'。所以
mx + b = m'x + b'
x = (m'x + b' - b)/m
将 x 代入 mx + b 即可得到该 x 的 y。
你仍然必须确保你找到的x,y在你的线SEGMENTS上;除非这些线是平行的,否则它们将在某处相交,但不一定在您开始使用的线段的端点之间。