解答例 - j2.lesson02.Triangle

package j2.lesson02;

/**
 * 課題1503 - 解答例.
 * 三角形を表すクラス.
 @author arakawa
 @version $Id: Triangle_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class Triangle {

    // 内部表現
    /** 辺 a の長さ. */
    double a;
    
    /** 辺 b の長さ. */
    double b;
    
    /** 辺 c の長さ. */
    double c;
    
    /**
     * 3辺の長さから三角形インスタンスを作成する。
     @param a 辺 a の長さ
     @param b 辺 b の長さ
     @param c 辺 c の長さ
     */
    // コンストラクタ
    public Triangle(double a, double b, double c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
    
    /**
     * 3点の座標から三角形インスタンスを作成する。
     @param p1 点1の座標
     @param p2 点2の座標
     @param p3 点3の座標
     */
    // コンストラクタ
    public Triangle(Point p1, Point p2, Point p3) {
        this.a = p1.distance(p2);
        this.b = p2.distance(p3);
        this.c = p3.distance(p1);
    }
    
    /**
     * この三角形の面積を計算する。
     @return この三角形の面積
     */
    public double area() {
        double s = (this.a + this.b + this.c2;
        return Math.sqrt(s * (s - this.a(s - this.b(s - this.c));
    }
    
    /**
     * テストプログラム。自由作成してよい。
     @param args 無視される
     */
    public static void main(String[] args) {
        // 自由に作成してよい。
    }
}