题目描述:
随意输入三个点,判断能否构成三角形,如果能则输出三角形的面积
package stuImooc;
/*
* 三角形:
* 三个点;
* 判断三角形成立条件;
* 面积;
*/
import java.util.Arrays;
public class Triangle {
private int X;
private int Y;
private String Name;
public void setX(int x) {
this.X=x;
}
public void setY(int y) {
this.Y=y;
}
public void setName(String n) {
this.Name=n;
}
public int getX() {
return X;
}
public int getY() {
return Y;
}
public String getName() {
return Name;
}
public void showInfor() {
System.out.println("坐标:"+this.Name+"("+this.X+","+this.Y+")");
}
//两点之间的距离
public double getDistance(Triangle t) {
return Math.sqrt((X-t.X)*(X-t.X)+(Y-t.Y)*(Y-t.Y));
}
//三角形成立的判断:两条较小边之和大于第三边且两条较小边之差小于第三边
public void showJudge(double a,double b,double c) {
double[] arr= {a,b,c};
Arrays.sort(arr);
if(arr[0]+arr[1]>arr[2]&&arr[1]-arr[0]<arr[2]) {
System.out.println("这三个坐标可以构成三角形");
}else {
System.out.println("这三个坐标不可以构成三角形");
}
}
public double getArea(Triangle t1,Triangle t2,Triangle t3) {
return (t1.X*(t2.Y-t3.Y)+t2.X*(t3.Y-t1.Y)+t3.X*(t1.Y-t2.Y))*0.5;
}
}
package stuImooc;
public class DemoTriangle {
public static void main(String[] args) {
Triangle t1=new Triangle();
t1.setX(4);
t1.setY(0);
t1.setName("A");
t1.showInfor();
Triangle t2=new Triangle();
t2.setX(3);
t2.setY(2);
t2.setName("B");
t2.showInfor();
Triangle t3=new Triangle();
t3.setX(-1);
t3.setY(0);
t3.setName("C");
t3.showInfor();
double a=t1.getDistance(t2);
System.out.println("点A到点B的距离:"+a);
double b=t2.getDistance(t3);
System.out.println("点B到点C的距离:"+b);
double c=t3.getDistance(t1);
System.out.println("点C到点A的距离:"+c);
t1.showJudge(a, b, c);
double area=t1.getArea(t1, t2, t3);
System.out.println("该三角形面积为:"+area);
}
}
与君共勉之~