[FreecivDev] different topologies, or, everything you can do with a she
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
All of the different topologies are a bit confusing. But if you think
about folding a sheet of cloth and sewing the edges together you can get
a pretty good idea.
For a flat map you just take the cloth asis. This is quite useful for
localized scenarios (like the map of europe).
For a cylinder map you take two opposite edges (either ns or ew) and
fold them together. Sew them together.
For a torus map, you do the above and then fold the cloth over again so
that you can sew the open edges together. You now have a donut.
A quincunx is the pattern made by the 5 on a sixsided die:
X X
X
X X
Take your cloth and fold all four corners to meet in the center. Now
sew together all the aligned edges. What you've got is topologically
equivalent to a sphere! But in terms of freeciv's rectangular map,
there are problems: there's a singularity along each side where the edge
comes together (meets itself). That's four singularities.
Now take the cloth and fold it over, just like you did when making a
cylinder. But now sew all four edges together just as they are when
folded. Now you've got the same type of connection on two sides as you
did with the quincunx, while the other two sides have a standard wrap.
There are just 2 singularities. This will work better in freeciv
because the singularities can be hidden at the poles.
Finally, take the cloth and fold it over like you did when making a
cylinder. But before sewing it together, reverse the direction of the
top half. Now you've got a mobius strip. You can try to fold the top
and bottom halves of the mobius strip together, but in three dimensions
it's impossible (you have to fold the cloth _through_ itself). If you
did a mobius wrapping in both directions you'd have a klein bottle.
What it comes down to is that there are four types of wrapping here:
 No wrapping.
 Simple wrapping.
 Mobius wrapping (e.g., mobius strip).
 Reversed wrapping (e.g., quincuncial).
Each direction (X or Y) can wrap in any of the above ways. Thus we have
16 different topologies (plus iso variants of each).
There is another type of wrapping as well: offset wrapping. Fold your
cloth over to make a cylinder. But before sewing it together, move half
of the folded cloth up a bit. Now the two sides don't quite match.
This doesn't fit into the simple categories above because you have to
specify how _much_ of an offset you want.
There are a few more wrapping forms that don't fit cleanly into
categories. We could fold the cloth to make a reversed wrapping, but
only sew it closed on one side (thus we get a reverse wrapping at x==0
but no wrapping at x==map.xsize).
We could fold the cloth into a triangle, and sew together some or all of
the edges. If we sew all of the edges we've got another approximation
of a sphere! Again we have two singularities.
We could take a cloth that is twice as wide as it is high. Treat each
half as a square and fold it over into a triangle. Sew together the
edges and you have yet another approximation of a sphere. The folds can
be aligned together or in opposite directions. You will have 3
singularities (I think).
jason
[Prev in Thread] 
Current Thread 
[Next in Thread] 
 [FreecivDev] different topologies, or, everything you can do with a sheet of cloth,
Jason Dorje Short <=

