Complete.Org: Mailing Lists: Archives: freeciv-dev: October 2001:
[Freeciv-Dev] Re: [PATCH] Formatting cleanup.
Home

[Freeciv-Dev] Re: [PATCH] Formatting cleanup.

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: [PATCH] Formatting cleanup.
From: Jason Dorje Short <vze2zq63@xxxxxxxxxxx>
Date: Thu, 04 Oct 2001 05:10:28 -0400
Reply-to: jdorje@xxxxxxxxxxxx

Gaute B Strokkenes wrote:
> 
> On Thu, 13 Sep 2001, jshort@xxxxxxxxxxxxx wrote:
> > Gaute B Strokkenes wrote:
> >>
> >
> >> b) the "you cannot necessarily attach a meaning to `normal', or
> >> `normalized', or `wrapped', or whatever you prefer to call it, when
> >> dealing with unreal coordinates" argument.  This is also incorrect,
> >> as I have explained on a couple of occassions with no dissenters.
> >
> > I dissented then, and I dissent now.
> 
> Didn't you see my reply?  Silence is consent, you know.  That's
> certainly how I interpreted things.

Sorry for the belated reply...I was disconnected for a good while.  No
doubt you have again taken silence for consent :-).

> > There are some topologies that would not be particularly difficult
> > to implement for which wrapping of non-real tiles has no good
> > meaning whatsoever.
> >
> >        x x x
> >      x x x x x
> > <- x x x x x x x ->
> > <- x x x x x x x ->
> > <- x x x x x x x ->
> >      x x x x x
> >        x x x
> 
> I was referring to <87wv3lu4zr.fsf@xxxxxxxxx>.  I note that the
> picture that you've drawn here is different from the one that you drew
> last time, and that the picture you have drawn here represent
> something that is more sensible than what you drew last time.
> 
> [ The difference was that the little arrows extended all the way to
>   the top and bottom in the previous diagram.  This makes a BIG
>   difference for the following argument.  ]

The picture is drawn slightly differently (I thought the previous
drawing might have confused you), but it's the same topology.  As you
point out below, it could be represented differently (in which case the
extra arrows I drew before would be necessary).

> > Your only response was to make the incorrect claim that this is not
> > a valid topology.
> 
> That is not what I said.  I said that you had constructed a topology
> where the concept of normalization itself is not particularly valid
> nor useful, whether applied to real or unreal tiles.


> > I also pointed out that any time you are wrapping an unreal
> > coordinate you are doing something fundamentally, theoretically
> > wrong.  I don't believe you responded to this at all.
> 
> Again, did you miss my reply entirely?  I think that the picture
> difference may have impeded communication here, however.
> 
>    X   x x x           X   x x x
>      x x x x x           x x x x x
> <- x x x x x x x -> <- x x x x x x x ->
> <- x x x x x x x -> <- x x x x x x x ->
> <- x x x x x x x -> <- x x x x x x x ->
>      x x x x x           x x x x x
>        x x x               x x x
> 
> I do not see what you're talking about at all here.  In fact, this is
> just a cylinder except that some tiles which are real on a cylinder
> have now been declared unreal.  For instance, look at the unreal tile
> marked with an upper-case X in the above picture.  Both of the X's are
> the same tile.  They have the same real and unreal neighbours, and so
> on.

My bad.  It's a bad example.  I've come up with a better one below.

> There is another way to draw this topology, which probably makes this
> clearer:
> 
> <- x x     X   x ->
> <- x x x     x x ->
> <- x x x x x x x ->
> <- x x x x x x x ->
> <- x x x x x x x ->
> <- x x x     x x ->
> <- x x         x ->
> 
> If you stil don't get it, try drawing your topology on the surface of
> a cylinder.

I get it.


How about this topology:

                 ^ ^ ^
                 | | |
<- X X X X X X X X X X
<- X X X X X X X X X X
<- X X X X X X X X X X

As far as I can tell (could be wrong), this topology should be valid
enough (it is not well-oriented, or whatever you called it, but this is
a technical problem not a validity one).  Yet there is no conceivable
way (well, no good way anyway) that you can wrap non-real tiles.  If
code relies on wrapping of unreal tiles it will have to be fixed for a
topology like this to be used.  (On a side note, I think a topology
similar to this could give a reasonable representation of a hemisphere. 
Figure out a way to tie two of them together and you could have a
sphere.)

I say again: any time you are wrapping an unreal coordinate, or doing
anything at all to it for that matter outside of converting it to a real
coordinate, you are doing something fundamentally, theoretically wrong. 
Give me enough chances, and I'll find a topology that proves it.


Off-topic: sphere approximation:

How about something like this:

         1
       ^ ^ ^
       | | |
     * X X X ->
  <- X X X X -> 2
1 <- X X X X ->
  <- X X X *
     | | |
     ^ ^ ^
       2

The points marked with a * are the poles (they account for one empty
tile each; this might be avoidable if you wanted).  "1" wraps to "1" and
"2" wraps to "2".  I've used ^ instead of <down carrot> since there is
no <down carrot>.

Although there may be something wrong with this topology, I don't see
what it is.  There is a problem because the upper-right and lower-left
corners are adjacent to each other in two directions; while not
theoretically wrong this will give some severe technical difficulties to
the user interface.  There may be a way to avoid that, too (it's a
problem the poles avoid by having the void tile there; maybe the other
corners could do that too...).  There are additional technical
difficulties because the current freeciv policy of never drawing a tile
twice would never work near the poles.

A good way to visualize this topology is by taking the original
topology:


           ^ ^ ^
           | | |
           X X X
           X X X
           X X X
           X X X
<- X X X X X X X
<- X X X X X X X
<- X X X X X X X

If you fashion this out of a piece of paper, it's easy enough to fold it
into place.  Shave off the corner sticking out and you've got a cone,
which makes for a pretty good hemisphere (with a hole at the pole). 
Stick two of these together (actually you have to resize it to do that)
and you've got a pretty good sphere.

Well, it's interesting although quite a ways off...

jason


[Prev in Thread] Current Thread [Next in Thread]