大家好
我试图获得从一个3D点对象到一条线的距离。这是我的代码:
line_x = [Geom::Point3d.new(0,0,0), Geom::Vector3d.new(1,0,0)]
a = [10,11,0]
distance_x = a.distance_to_line line_x
puts distance_x
这是Sketchup ruby控制台中的输出。
11"
11"
我尝试使用distance_x.typename但是它有错误:11.0的未定义方法`typename':长度
我认为distance_to_line的输出是一个数字。为什么我得到两倍的结果,而我只是一次拨打电话 请帮帮我,谢谢
答案 0 :(得分:1)
Array.distance_to_line返回一个长度。
line_x = [Geom::Point3d.new(0,0,0), Geom::Vector3d.new(1,0,0)]
[Point3d(0, 0, 0), Vector3d(1, 0, 0)]
a = [10,11,0]
[10, 11, 0]
distance_x = a.distance_to_line line_x
11.0
distance_x.class
Length
是的,docs对返回类型不是很清楚。
答案 1 :(得分:0)
之前我使用过SketchUp,但没有使用Ruby脚本。我刚刚尝试过,我看到控制台每次输入一行时都输出返回值(除了输出任何输出)。但我无法准确再现你所看到的内容。
如果我一次输入一行,我会在第二行后面获得11.0
,然后在最后一行之后输入:
11"
nil
'nil'是#puts
实际返回的内容。
如果我将脚本保存在文本编辑器中并将其加载到SketchUp中,我会改为:
11"
true
'True'是根据SketchUp documentation“文件中没有语法错误”时的返回值。
但正如我所说,我无法准确再现你所看到的内容。
如果您将最后一行更改为'distance_x'(删除单词'puts'),您会看到什么?对我来说,这只返回值'11 .0'。