package 直线;
import java.util.*;
public class 交点及面积 {
static float k, b, k1, b1, k2, b2, jiaox, jiaoy, mianji;
static int flag1 = 0, flag2 = 0;
public static void main(String args[]) {
float x1, y1, x2, y2 = 0;
Scanner b = new Scanner(System.in);
System.out.println("请输入形成第一条直线的两个点x1,y1,x2,y2");
x1 = b.nextFloat();
y1 = b.nextFloat();
x2 = b.nextFloat();
y2 = b.nextFloat();
if (x2 - x1 == 0) {
flag1 = 1;
交点及面积.k1 = x1;
} else {
直线(x1, y1, x2, y2);
交点及面积.k1 = 交点及面积.k;
交点及面积.b1 = 交点及面积.b;
}
if (flag1 == 1)
System.out.println("这条直线方程为:x=" + k1);
else
System.out.println("这条直线方程为y=" + k1 + "x" + "+" + b1);
System.out.println("请输入形成第二条直线的两个点x1,y1,x2,y2");
x1 = b.nextFloat();
y1 = b.nextFloat();
x2 = b.nextFloat();
y2 = b.nextFloat();
if (x2 - x1 == 0) {
flag2 = 1;
交点及面积.k2 = x1;
} else {
直线(x1, y1, x2, y2);
交点及面积.k2 = 交点及面积.k;
交点及面积.b2 = 交点及面积.b;
}
if (flag2 == 1)
System.out.println("这条直线方程为:x=" + k2);
else
System.out.println("这条直线方程为y=" + k2 + "x" + "+" + b2);
找两个直线的交点();
System.out.println("两条直线的交点为" + "(" + jiaox + "," + jiaoy + ")");
形成的三角形面积();
System.out.println("形成的三角形面积为:" + mianji);
}
public static void 直线(float x1, float y1, float x2, float y2) {
交点及面积.k = (y2 - y1) / (x2 - x1);
交点及面积.b = y1 + (-(k * x1));
}
public static void 找两个直线的交点() {
if (交点及面积.flag1 == 1)
if (交点及面积.flag2 == 1) {
System.out.println("这两条直线平行");
System.exit(0);
} else {
jiaox = k1;
jiaoy = k1 * k2 + b2;
flag1 = 2;
flag2 = 2;
}
else if (flag2 == 1) {
jiaox = k2;
jiaoy = k1 * k2 + b1;
flag1 = 2;
flag2 = 2;
} else if (k1 == k2) {
System.out.println("这两条直线平行");
System.exit(0);
} else {
jiaox = -((b2 - b1) / (k2 - k1));
jiaoy = k1 * jiaox + b1;
}
}
public static void 形成的三角形面积() {
float s = 0, p = 0, di = 0;
if (flag1 == 0 && flag2 == 0)
if (k1 == 0&&k2!=0) {
di = Math.abs(b1 -b2);
mianji = (di * Math.abs(jiaox)) / 2;
return;
} else if (k2 == 0) {
di = Math.abs(b2 - b1);
mianji = (di * Math.abs(jiaox)) / 2;
return;
}
if (flag1 == 1)
if (k2 == 0) {
System.out.println("这两条直线形成的为四边形");
System.exit(0);
} else {
s = (-b2) / k2;
di = s - k1;
di = Math.abs(di);
mianji = (di * Math.abs(jiaoy)) / 2;
}
else if (flag2 == 1)
if (k1 == 0) {
System.out.println("这两条直线形成的四边形");
System.exit(0);
} else {
s = (-b1) / k1;
p = (-b2) / k2;
di = s - p;
di = Math.abs(di);
mianji = (di * Math.abs(jiaoy)) / 2;
}
else {
s = (-b1) / k1;
di = s - k2;
di = Math.abs(di);
mianji = (di * Math.abs(jiaoy)) / 2;
}
}
}