[HN Gopher] Generating Platonic Solids in C++ (2021)
       ___________________________________________________________________
        
       Generating Platonic Solids in C++ (2021)
        
       Author : cpp_frog
       Score  : 46 points
       Date   : 2023-01-31 11:53 UTC (11 hours ago)
        
 (HTM) web link (www.danielsieger.com)
 (TXT) w3m dump (www.danielsieger.com)
        
       | ginko wrote:
       | This is missing the 6th platonic solid.
       | 
       | https://assets.nautil.us/8516_6a12d7ebc27cae44623468302c47ad...
        
       | virtualritz wrote:
       | I maintain a Rust crate for this and more operations like the
       | 'dual' mentioned in the article:
       | 
       | https://github.com/virtualritz/polyhedron-ops
        
       | CmdrLoskene wrote:
       | Very cool, thank you!
        
       | s1mon wrote:
       | If you're really interested in polyhedra and how to code them,
       | you might want to check out this resource:
       | https://polyhedra.tessera.li/
        
       | einpoklum wrote:
       | [flagged]
        
         | zabzonk wrote:
         | use of auto to deduce types, use of range based for-loops?
         | seems like fairly modern c++ to me.
        
           | einpoklum wrote:
           | There are probably dozens of languages with "for each" loops,
           | and plenty of languages where you don't have to restate the
           | return type of a function (e.g. "with x as foo() do" or "let
           | t = foo()" and such).
        
             | zabzonk wrote:
             | so what? you complained that no c++ "special sauce" was
             | used. i don't really know what that is, but i pointed out
             | that the article did use modern c++
        
           | jcelerier wrote:
           | both these features are older than the Go, Rust and Swift
           | programming languages, can we stop calling them modern? I
           | started learning C++ when I was 11-12 years old, if I was
           | born the day of the C++11 release standard I would already
           | have started learning it by then
        
           | creativenolo wrote:
           | I wouldn't say these are a special sauce that C++ has to make
           | these Platonic solids.
        
             | zabzonk wrote:
             | no, but they are modern c++ constructs. the title of the
             | post did not imply that the article was about some bizzaro
             | means of constructing the solids using template meta-
             | programming, or such. many c++ programmers wish that people
             | would not do such things - not everything needs to be
             | calculated at compile-time.
        
               | rom-antics wrote:
               | for (auto f : mesh.faces(v))
               | vertices.push_back(fvertex[f]);
               | 
               | What is so bizzaro about this? For loops and `auto` are
               | both pretty standard features for a programming language.
        
               | zabzonk wrote:
               | modern c++, as i said in the post you are replying to
               | 
               | though maybe emplace_back?
        
               | kccqzy wrote:
               | GP is saying many wish that people won't use template
               | meta-programming. You quoted a bog standard piece of code
               | that doesn't use template meta-programming.
        
               | rom-antics wrote:
               | Yeah, that is bog standard code. All the code in the post
               | is. I'm just trying to figure out why we're complaining
               | about template meta-programming, because I didn't see any
               | in TFA and I sure didn't see any code that deserved being
               | called bizzaro.
        
               | zabzonk wrote:
               | i didn't call it bizzaro, creativenolo was observing
               | about it not using C++ special sauce, which i took to
               | mean strange template stuff
        
           | s9w wrote:
           | [dead]
        
       | dr_dshiv wrote:
       | "To earth, then, let us assign the cubical form; for earth is the
       | most immoveable of the four and the most plastic of all bodies,
       | and that which has the most stable bases must of necessity be of
       | such a nature. Now, of the triangles which we assumed at first,
       | that which has two equal sides is by nature more firmly based
       | than that which has unequal sides; and of the compound figures
       | which are formed out of either, the plane equilateral quadrangle
       | has necessarily a more stable basis than the equilateral
       | triangle, both in the whole and in the parts."
       | 
       | Timaeus
        
       | chubot wrote:
       | FWIW a few years ago I worked on a video of 3D slices of a 4D
       | platonic solid (a hyperdodecahedron):
       | 
       | https://www.oilshell.org/recurse/120-cell-bathroom.original....
       | 
       | It's all in Python (and shell scripts), which IMO makes it easier
       | to experiment with than C++.
       | 
       | I completely forgot how it worked until I went back and looked
       | just now ... there is this bit of 4D polytope code we borrowed,
       | and the rest is 3D math and integration with rendering, stitching
       | frames together, etc.
       | 
       | https://github.com/wwwaldo/pbrt-video/blob/master/schlafli/s...
        
       ___________________________________________________________________
       (page generated 2023-01-31 23:01 UTC)