答:当然可以自己写。但我想,使用apache.commons.math的JAVA数学包很方便。如: 设第一条直线的两个端点分(x1,y1)、(x2,y2)如:(0,0)到(1,1) 设第二条直线的两个端点分(m1,n1)、(m2,n2)如:(1,0)到(0,1) 求它们的交点。代码如下: mport org.apache.commons.math.linear.* ; import org.apache.commons.math.*; public class Line { public static void main(String[] args) {
设第一条直线的两个端点分(x1,y1)、(x2,y2)如:(0,0)到(1,1)
设第二条直线的两个端点分(m1,n1)、(m2,n2)如:(1,0)到(0,1)
求它们的交点。代码如下:
mport org.apache.commons.math.linear.* ;
import org.apache.commons.math.*;
public class Line {
public static void main(String[] args) {
//设第一条直线的两个端点分(x1,y1)、(x2,y2)如:(0,0)到(1,1)
//设第二条直线的两个端点分(m1,n1)、(m2,n2)如:(1,0)到(0,1)
//求它们的交点
double x1=0,y1=0,x2=1,y2=1,m1=1,n1=0,m2=0,n2=1;
//开始计算
/*
其实就是解方程:
a1*x+y=b1
a2*x+y=b2
的解
*/
double a1=-(y2-y1)/(x2-x1),b1=y1-x1*(y2-y1)/(x2-x1),
a2=-(n2-n1)/(m2-m1),b2=n1-m1*(n2-n1)/(m2-m1);
double[][] coefficientsData = {{a1, 1}, {a2, 1}};
RealMatrix coefficients = new RealMatrixImpl(coefficientsData);
double[] constants = {b1,b2};
double[] solution = coefficients.solve(constants);
System.out.println("它们的交点是:x="+solution[0]+"y="+solution[1]); }}
* @param args the command line arguments
*/
public static void main(String[] args){
double x1=6,y1=-5,x2=15,y2=-9; //设x1,y1;x2,y2为第一个直线方程上的2个坐标点,
double x3=4,y3=8,x4=7,y4=9; //设x1,y1;x2,y2为第二个直线方程上的2个坐标点,
double a1=(y1-y2)/(x1-x2); //设直线 方程为y=a*x+b;根据两点可以常量a和b;
double b1=y1-(x1*a1); //a1和b1为第一个方程的常量。
double a2=(y3-y4)/(x3-x4);
double b2=y3-(x3*a2); //a2和b2为第一个方程的常量。
double x,y;
// double y=a1*x+b1; 第一条直线方程
//y=a2*x+b2; 第二个直线方程。
//两条直线方程组成方程组在求解出x和y,x和y就是所求的交点。
x=(b2-b1)/(a1-a2);
y=a1*x+b1;
System.out.println("两条直线的交点为:"+"("+x+","+y+")");
}