我需要Math.radians()函数,但找不到它。
radians=(angle/180)* Math::PI发布于 2010-02-25 01:02:28
您可能想要在lib/目录中创建一个名为"mymath.rb“的文件,并像下面这样修补Math:
require 'mathn'
module Math
def self.to_rad angle
angle / 180.0 * Math::PI
end
end或者你可以按照@MBO在他的评论中说的那样做。链接似乎已关闭,但Google存档中提供了这句信息性的小句子,它表明了一个可能比我的解决方案更干净的解决方案(尽管我更喜欢将数学知识放在数学中):
最简单的解决方案是在Numerical语言中定义一个转换方法,该方法将度数转换为弧度。
值得一提的是,Ruby 2.0有一个称为“细化”的特性,它基本上允许您进行本地修补。它是这样工作的(取自this blog post:
module RadiansConversion
refine Math do
def to_rad angle
angle / 180.0 * Math::PI
end
end
end然后..。它可以在另一个模块或类似的东西中使用。
module MyApp
using RadiansConversion
p Math.to_rad 180 #=> 3.14159265358979
p Math.to_rad 235 #=> 4.10152374218667
end发布于 2015-07-04 00:48:53
或者你可以扩展Float来添加一个'to_rad‘转换:
class Float
def to_rad
self/180 * Math::PI
end
end并像这样使用它
radian=angle.to_rad发布于 2012-11-18 23:06:13
编辑(因为投票不通过):对不起!当我回答的时候,我需要这个值的数组,只是想分享我发现的东西。
所以,是的,实际上它只是:
x * (Math::PI / 180)
只是想展示我找到的一个实现。
# Geocoder::Calculations.to_radians(@geocode)
def to_radians(*args)
args = args.first if args.first.is_a?(Array)
if args.size == 1
args.first * (Math::PI / 180)
else
args.map{ |i| to_radians(i) }
end
end将度数转换为弧度。如果传递了数组(或多个参数),则转换每个值并返回数组。
http://rubydoc.info/github/alexreisner/geocoder/master/Geocoder/Calculations#to_radians-instance_method
https://stackoverflow.com/questions/2324587
复制相似问题