三角形应用
需求
字段
三角形用三个而坐标点表示, 每个点的坐标都是 double 类型
方法
应当能够判断对应点是否在三角形内
应当能够得到三角形的面积
应当能够得到三角形的周长
代码
import org.junit.Assert;
import java.awt.geom.Line2D;
/**
* @author LeXin Huang
* @date 2021年04月16日 8:07
*/
public class MyPoint2D {
private final Double x;
private final Double y;
public MyPoint2D(Double x, Double y) {
this.x = x;
this.y = y;
}
static class MyTriangle2D {
private MyPoint2D p1;
private MyPoint2D p2;
private MyPoint2D p3;
public MyTriangle2D() {
this.p1 = new MyPoint2D(0.0, 0.0);
this.p2 = new MyPoint2D(1.0, 1.0);
this.p3 = new MyPoint2D(2.0, 5.0);
}
public MyTriangle2D(MyPoint2D p1, MyPoint2D p2, MyPoint2D p3) {
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
}
// 利用海伦公式
public double getArea() {
double p = getPerimeter() * 0.5;
return Math.sqrt(p*(p - getSide1Len())*(p - getSide2Len())*(p - getSide3Len()));
}
/**
* @return p1, p2 点之间的线段长度
*/
private double getSide1Len() {
return Math.sqrt(Math.pow((p1.x - p2.x), 2) + Math.pow((p1.y - p2.y), 2));