ruby-计算同心圆点

时间:2016-05-26 00:04:19

标签: ruby svg graphics geometry trigonometry

enter image description here

我正在为同心圆和圆和弦计算几何几何。

我需要将半径长度设为绿色并创建一个相应的形状,其中(较短的)半径为橙色。

具体来说,如果角度为红色,半径为绿色,半径为橙色,对于橙色长度的三角形,我想以粉红色计算角度。

我在Ruby中工作,但是对trig函数的任何一般使用都很有帮助。

3 个答案:

答案 0 :(得分:2)

当两个同心圆的半径为rRr < R时,粉红色角度仅为arccos(r/R),假设定义三角形为矩形,似乎是你的图片。不需要红色角度。

Math.acos(r/R)然后以弧度为单位给出角度。

这完全是微不足道的,所以我可能误解了“创造相应形状”的意思。

答案 1 :(得分:0)

让我们调用外圆的半径(绿色的一半)ro,以及内圆的半径(橙色的一半)ri,红色的角度{{1粉红色的角度alpha。很容易看出

ro * cos(beta)= ri * cos(alpha)

因此可以轻松解决beta

Ruby代码

beta = Math.acos(ri * Math.cos(alpha)/ ro)

答案 2 :(得分:0)

根据上图,您似乎知道橙色三角形的相邻和斜边。 Ruby有nice Math module提供三角函数。请查看以下内容:

hypotenuse_length = 5.0
adjacent_length = 3.0

red_angle = Math.acos(adjacent_length / hypotenuse_length)
print(Math.sin(red_angle) * hypotenuse_length)
# 4.0

如果您需要学位值,可以延长Numeric来处理转化:

class Numeric
  def radians_to_degrees
    self * (180 / Math::PI)
  end

  def degrees_to_radians
    self * (Math::PI / 180) 
  end
end