0

私の現在の三角形のクラスは次のようになります。

public class TriangleEquilateral {
    private Point cornerA;
    private Point cornerB;
    private Point cornerC;
    private double x1 = 0;
    private double y1 = 0;
    private double x2 = 10;
    private double y2 = 0;
    private double x3 = 5;
    private double y3 = Math.sqrt(75);

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

    public TriangleEquilateral(double X1,double Y1,double X2,double Y2,double X3,double Y3){
        x1 = X1;
        y1 = Y1;
        x2 = X2;
        y2 = Y2;
        x3 = X3;
        y3 = Y3;

        cornerA = new Point(X1,Y1);
        cornerB = new Point(X2,Y2);
        cornerC = new Point(X3,Y3);
    }

    public boolean isEquilateral(){
        double lengthAB = Math.sqrt(Math.pow(x1-x2,2) + Math.pow(y1-y2,2));
        double lengthBC = Math.sqrt(Math.pow(x2-x3,2) + Math.pow(y2-y3,2));
        double lengthCA = Math.sqrt(Math.pow(x3-x1,2) + Math.pow(y3-y1,2));

        boolean isEquilateral = false;
        if(lengthAB == lengthBC && lengthBC == lengthCA && lengthCA == lengthAB){
            isEquilateral = true;
        }
        System.out.println(lengthAB);
        System.out.println(lengthBC);
        System.out.println(lengthCA);
        return isEquilateral;
    }

    public double sideLength(){
        double sL = 0;
        if(this.isEquilateral() == true){
            sL = Math.sqrt(Math.pow(x1-x2,2) + Math.pow(y1-y2,2));
        }
        return sL;
    }

正三角形の中点の座標を求めるにはどうすればよいですか? 中点がx = (base/2)y = heigth/2であることはわかっていますが、これは底辺が水平の場合にのみ機能します (2 つのコーナーの y 値が同じ)

4

2 に答える 2

4

正三角形の場合、三角形の中心の座標は、その内接円の中心の座標と同じです。

ウィキペディアで内接円の中心の式を調べてください。

{ (aXa+bXb+cXc)/(a+b+c), (aYa+bYb+cYc)/(a+b+c) }

であるためa = b = c、正三角形の中心の座標は簡単に

{ (x0+x1+x2)/3, (y0+y1+y2)/3 }
于 2013-02-22T01:55:06.190 に答える
1

これは Java の質問というより数学の質問です。とにかく、重心を見つけるには:

x = (x1 + x2 + x3) / 3
y = (y1 + y2 + y3) / 3
于 2013-02-22T01:54:42.943 に答える