0

Triangleクラスを実装する必要があり、三角形が実際に二等辺三角形であるかどうかを判断するために、辺の長さを比較することに固執しています。これが私がこれまでに持っているものです:

public class TriangleIsosceles {

    private Point cornerA;
    private Point cornerB;
    private Point cornerC;
    private int x1;
    private int y1;
    private int x2;
    private int y2;
    private int x3;
    private int y3;

    public TriangleIsosceles(){
        cornerA = new Point(0,0);
        cornerB = new Point(10,0);
        cornerC = new Point(5,5);
    }

    public TriangleIsosceles(int x1,int y1,int x2,int y2,int x3,int y3){
        cornerA = new Point(x1,y1);
        cornerB = new Point(x2,y2);
        cornerC = new Point(x3,y3);
    }

    public String isIsosceles(String isIsosceles){
        return isIsosceles;
    }

}

Pointimが使用しているオブジェクトは次のとおりです。

public class Point {

    private int x;
    private int y;

    public Point(){
        this(0,0);
    }

    public Point(int x, int y){
        this.x = x;
        this.y = y;
    }
    public void setX(int x){
        this.x=x;
    }
    public void setY(int y){
        this.y=y;
    }
    public void printPoint(){
        System.out.println(x + y);
    }

    public String toString(){
        return "x = "+x+" y = "+y;
    }

}

別のクラス( )で、2点の距離を決定LineSegmentするメソッドを作成しました。length()これは次のようになります:

public double length() {
    double length = Math.sqrt(Math.pow(x1-x2,2) + Math.pow(y1-y2,2));
    return length;
}

TriangleIsoscelesこのメソッドを使用して、クラス内の三角形の長さを見つけるにはどうすればよいですか?

私は私がするかどうかを確認する必要があることを知っています(lenghtAB == lengthBC || lengthBC == lenghtCA || lengthAB == lengthCA)

4

2 に答える 2

1

迅速で完全に有効な解決策は、長さメソッドを静的ユーティリティメソッドにすることです。

public static double length(x1, y1, x2, y2)
{
    return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
}

or

public static double length(Point p1, Point p2)
{
    return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
}

Point自体にメソッドを追加することもできます。つまり、Pointクラスに次のように追加します。

public double calcDistance(Point otherPoint)
{
   return Math.sqrt(Math.pow(this.x - otherPoint.x, 2) + Math.pow(this.y - otherPoint.y, 2));
}
于 2013-02-19T00:28:41.463 に答える
0

LineSegmentクラスに2つのオブジェクトを受け取るコンストラクターがあると仮定すると、Point3つのオブジェクトを作成する必要がLineSegmentあります(クラスにキャッシュできますTriangle)。次に、を使用しLineSegment#getLength()て、任意の2つの辺が同じ長さであるかどうかを判断できます。

これは宿題のように見えるので、私はあなたに完全な解決策を与えることはしません。

于 2013-02-19T00:27:24.383 に答える