mruby-siren icon indicating copy to clipboard operation
mruby-siren copied to clipboard

大きすぎる半径で生成した Siren.sphere の容積の値が正しくない

Open dyama opened this issue 9 years ago • 0 comments

mruby および OCCT 双方の巨大数の取り扱いと変換処理を確認する。

> Siren.sphere(10e+10000)
 => #<Shape:0x2192050 @type=SOLID>
> Siren.sphere(10e+10000).volume
 => 0
> Siren.sphere(10e+1000).volume                                             
 => 0
> Siren.sphere(10e+100).volume                                              
 => 4.1887902047864e+303
> Siren.sphere(10e+1000).volume
 => 0
> Siren.sphere(10e-100).volume                                              
 => 0
> Siren.sphere(10e-10).volume                                               
 => 4.1887902047864e-27

そもそも、 BRepPrimAPI_MakeBox では [0, 0, 0] や [0, 1, 2] といった大きさのソリッドは作成できないが、 BRepPrimAPI_MakeSphere は半径 0 でソリッドが作成可能なのは不可解。

> Siren.sphere 0
 => #<Shape:0x21921d0 @type=SOLID>
> Siren.sphere(0).volume
 => 0

dyama avatar Sep 16 '16 14:09 dyama