【问题标题】:returning a boolean in one line for a ball that has crashed into another ball在一行中返回一个布尔值,表示一个已经撞到另一个球上的球
【发布时间】:2018-04-29 18:50:14
【问题描述】:

我本季度刚开始学习 java,在一个示例测验中,这是一个问题。我不知道从哪里开始,因为它必须返回 boolean 类型。

如果在 x1, y1, 半径为 r1 的圆与在 x2, y2, 半径为 r2 的圆相撞,则填入空白。

boolean collided(int x1, int y1, int r1, int x2, int y2, int r2) {
    return ___________________________________________________________;
}

感谢 cmets 和善意的帮助。就像我上面说的,如果你读过它,我本季度刚开始学习 java 并且在一个示例测验中,这是一个我不知道从哪里开始的问题。如果有人愿意将我引导到另一个更适合初学者的学习资源,那就太好了。

【问题讨论】:

  • 这更像是math question
  • ehm ...你知道“碰撞”是什么意思吗?你知道如何检查是否发生碰撞吗?
  • 这不是java代码,你需要立即离开那个站点,真正的java将是: Ball one = new Ball(x,y,z);另一个球 = 新球 (x,y,z); one.collided(另一个);
  • StackOverflow 不是一个其他人会做功课的平台。请添加一些您尝试过的信息,添加一些代码等

标签: java return boolean user-defined-functions


【解决方案1】:

当球心之间的距离小于半径之和时,球就会发生碰撞。

距离是sqrt((x1-x2)^2 + (y1-y2)^2)

sqrt 是平方根,a^b 是幂(a^2a*a)。

【讨论】:

    【解决方案2】:

    就代码而言,这是:

    boolean collided(int x1, int y1, int r1, int x2, int y2, int r2) {
      return Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) < r1+r2;
    }
    

    该语句包括计算两个圆心之间的距离并检查该距离是否小于两个半径之和。该检查返回一个布尔值,true 如果圆圈“碰撞”

    【讨论】:

      【解决方案3】:
      boolean collided(int x1, int y1, int r1, int x2, int y2, int r2) 
      {
        return !(Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))>(r1+r2));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-16
        • 1970-01-01
        • 2021-09-16
        • 2021-07-31
        相关资源
        最近更新 更多