【问题标题】:Javascript: compute the radius of circle given center point and another pointJavascript:计算给定中心点和另一个点的圆的半径
【发布时间】:2014-07-16 04:40:03
【问题描述】:

假设我有一个圆心在原点 (0,0) 和一个 90 度的点在 (0,10)...从这两个明显的点圆的半径肯定是 10对吧?

我研究了根据中心点和另一点求半径的公式是:

Math.sqrt( ((x1-x2)*2)  + ((y1-y2)*2) )

但我得到的值是 4.47213595499958,而不是我认为的 10

谁能教我正确的公式,我应该用它来从一个中心点到另一个点做一个完美的圆吗?

【问题讨论】:

  • 不是90度(10,0)吗?我以为 0deg 指向上方。
  • 一般来说,对于笛卡尔系统,零度的常见解释是指向右侧
  • @slebetman 是的,我可能太困了.. 使用 css3 渐变,它只是将供应商前缀 0deg 指向右侧,现在标准 0deg 指向上方,我可能将它与基本笛卡尔坐标混合飞机也是。

标签: javascript math geometry


【解决方案1】:

javascript 中的权力是通过使用Math.pow 来完成的:

Math.sqrt( Math.pow((x1-x2), 2) + Math.pow((y1-y2), 2) )

【讨论】:

  • 哇。我肯定会使用这个公式...感谢您的帮助!
【解决方案2】:

在 javascript 中,* 运算符表示乘法,而不是乘方。正确的公式应该是:

Math.sqrt( ((x1-x2)*(x1-x2)) + ((y1-y2)*(y1-y2)) )

【讨论】:

  • 您也可以使用^ 运算符(这确实意味着“提升权力”):Math.sqrt( ((x1-x2)^2) + ((y1-y2)^2) )
  • @pete 不,它肯定不会。它是二元异或运算符。
  • @pete 这是一个二进制按位异或运算符。哦,Xymos 已经说过了。
  • 我的错误(现在在 VB 中思考)。谢谢指正。
  • 谢谢大家!我感谢您的帮助!谢谢你让我意识到我犯的愚蠢错误。我应该使用 Math.pow 而不是将其乘以 2。
猜你喜欢
  • 2014-05-12
  • 2021-04-09
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
  • 2012-12-15
  • 1970-01-01
相关资源
最近更新 更多