【问题标题】:How do I implement these angles in my ThreePoint triangle program in java?如何在 Java 的 ThreePoint 三角形程序中实现这些角度?
【发布时间】:2015-02-16 11:51:55
【问题描述】:

我正在尝试实现

在我的 Java 中的 ThreePoint 程序中。

这是我计算边数的 getLength 方法

   private double getLength(int side){


     if(side == 0 && isTriangle()){
         return Math.sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));
     } else if (side == 1 && isTriangle()){
         return Math.sqrt((x2-x0) * (x2-x0) + (y2-y0) * (y1-y0));
     } else if (side == 2 && isTriangle()){
         return Math.sqrt((x1-x0) * (x1-x0) + (y1-y0) * (y1-y0)); 
     }else{ return 0;

     }
     }

参数vertex应为0、1或2,用于指定角度a0、a1或a2。该方法返回指定顶点的角度。如果三个点不形成三角形,则此方法应返回零。要确定三角形的角度,您可以使用余弦定律。(如上)

所以下面是骨架的样子,但是我该如何实现这个图表呢?

 public double getAngle(int vertex){

            if(vertex == 0 && isTriangle()) {
           return a0 here; }
           else if(vertex == 1 && isTriangle()) {
           return a1 here; }
           else if(vertex == 2 && isTriangle()) {
           return a2; }

【问题讨论】:

    标签: java geometry angle trigonometry


    【解决方案1】:

    我的java有点生锈,我的trig更生锈,但我认为你想要的a0在下面。你可以从下面找出a1和a2。另请注意,Java 三角函数使用弧度而不是度数,但这在这里应该不是问题。

    double s02 = Math.pow(this.getLength(0),2);
    double s12 = Math.pow(this.getLength(1),2);
    double s22 = Math.pow(this.getLength(2),2);
    a0 = Math.acos((-s02+s12+s22)/(2*s12*s22));
    

    注意:我假设 s0 s1 和 s2 是边 0,1 和 2 的长度对吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多