POV-Ray : Newsgroups : povray.general : Bug report: shapes2.inc icosahedron numerical inaccuracy : Re: Bug report: shapes2.inc icosahedron numerical inaccuracy Server Time
18 May 2024 12:46:33 EDT (-0400)
  Re: Bug report: shapes2.inc icosahedron numerical inaccuracy  
From: Le Forgeron
Date: 22 Jul 2019 04:25:54
Message: <5d357312$1@news.povray.org>
Le 21/07/2019 à 22:53, Robert Munyer a écrit :
> I wanted an icosahedron module for OpenSCAD, and didn't find anything
> on-line that I liked, so I wrote this:
> 
>   intersection_for
>       (a_z = [-180 : 72 : 179],
>        a_y = [atan2 (4, 3 + sqrt (5)),
>               atan2 (sqrt (10 + sqrt (20)), sqrt (5 - sqrt (20)))])
>     rotate ([0, a_y, a_z])
>       cube ([2, 2, sqrt (3/4) + sqrt (5/12)], true);
> 
> I thought that I could double-check my math by verifying that my
> angles matched POV-Ray's angles.  They didn't quite match.  A close
> view of a POV-Ray icosahedron vertex reveals that it is malformed
> (see PNG in message with same subject, in povray.binaries.images).
> 
> calculated: 52.6226318593503043571428615050624824299049526181
> pov-ray:    52.6625
> 
> calculated: 10.8123169635717062912849447744842228988908330822
> pov-ray:    10.8125
> 
> One of POV-Ray's angles is wrong only in the last digit, but the
> other angle has _three_ wrong digits.
> 

You are correct.
From wikipedia, the dihedral angle in icosahedron should be
pi-acos(sqrt(5)/3), which is 138,189685104221 degrees, it's complement
is 41,8103148957786 degrees.

The difference between pov-ray planes is 41.85 degrees, a bit too much.

The precision should probably be limited to 11 digits after the decimal
dot, similar to the dodecahedron.

But actually, just fixing the 52.6625 with 52.6225 is already enough to
solve the intersection of the 5 planes of your scene.

On the same line of precision, the tetrahedron should use something
along 19.47122063449 instead of 19.47


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.