[Edu-sig] More Pythonic Soccer Ball Geometry (was HexaPent)

kirby urner kirby.urner at gmail.com
Sun Jul 23 07:02:51 CEST 2006


On 7/22/06, kirby urner <kirby.urner at gmail.com> wrote:

> Note that the tricks I use to build this data structure (globaldata)
> aren't necessarily going to scale when we move to the higher frequency
> hexapents (12 pentagons, more hexagons).

Actually, I'm thinking they scale pretty well.

Given a set of hexapent faces, say a list of 5- and 6-tuples, we name
each face after the corner vertices, just as we normally do in
geometry.  Tuples are hashable keys, so we could call (1,3,13,5,7) a
face (I'm just inventing the sequence), except to avoid duplicates
we'd take advantage of ordinality to make (1,3,5,7,13) the *unique*
reference to some pentagon.

>From this face data, we have the same ability to distill (a) all
unique edges (as vertex-pair tuples) and (b) all neighbors of a cell =
those with exactly one edge in common.

We can brute force our way through this if we're lazy and operating at
a low enough frequency.  Once developed, the resulting data structure
may be saved to a file for recycling.

So far, I haven't found a way to make Rick Bono's dome.exe (mentioned
earlier) output buckyballs (x3 frequency) in a format that conserves
faces as such.  However, I'm thinking Adrian's Packinon might well do
the job.

So using gm.py to automatically build a globaldata dictionary for a
higher frequency hexapent shouldn't be too problematic, using integers
for vertices, and tuples for edges and faces.  globaldata, recall,
keys each face to a list of neighboring faces, so we're talking all 5-
and 6-tuples.

A separate lookup function could then retrieve pre-rendered data from
a stash.  Walking the globe is one thing.  Doing so in real time --
well, that depends on what you're looking to see.

I haven't forgotten that we want a compass control as part of the GUI,
so that the 90-45 degree points mix with the 60-72 degree motif of the
hexapent.

Also, we of course want our labeled vertices to map to XYZ coordinate
data, or whatever info will help with the OpenGL or whatever.

Kirby


More information about the Edu-sig mailing list