<pre id=\"best-answer-content\" class=\"reply-text mb10\">一般三角形:r=2S/(a b c),其中S是三角形面积,a、b、c是三角形三边。另外S=根号下p(p-a)(p-b)(p-c),其中p=(a b c)/2
public class Triple {
private double a;
private double b;
private double c;
public Triple(double a, double b, double c){
this.a = a;
this.b = b;
this.c = c;
}
public static void main(String[] args) {
double x1 = 0, y1 = 0;
double x2 = 0, y2 = 3;
double x3 = 4, y3 = 0;
Point pa = new Point(x1, y1);
Point pb = new Point(x2, y2);
Point pc = new Point(x3, y3);
double a = Point.distance(pc, pb);
double b = Point.distance(pa, pc);
double c = Point.distance(pa, pb);
Triple triple = new Triple(a, b, c);
double s = triple.area();
double r = triple.getInnerRadius();
System.out.println(\"Area is: \" s);;
System.out.println(\"Inner r is: \" r);
}
public double area(){
double p = (a b c) / 2;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
public double getInnerRadius(){
double s = area();
return 2 * s /(a b c);
}
}
class Point{
private double x;
private double y;
public Point(double x, double y){
this.x = x;
this.y = y;
}
public static double distance(Point p1, Point p2){
double square = Math.pow((p1.x - p2.x), 2) Math.pow((p2.y - p1.y), 2); //(x1-x2)^2 (y1-y2)^2
return Math.sqrt(square);
}
}
--------------用一个直角三角形测试
Area is: 6.0
Inner r is: 1.0 |