Java编程 如何计算三角形的内切圆半径?

[复制链接]
查看11 | 回复1 | 2011-3-29 08:17:09 | 显示全部楼层 |阅读模式
已知三角形三个顶点的坐标,分别为A(x1, y1), B(x2, y2), C(x3, y3). 如何计算三角形的内切圆半径?
回复

使用道具 举报

千问 | 2011-3-29 08:17:09 | 显示全部楼层
<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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行