[Freeciv-Dev] Re: (PR#7304) iso-map support for mapgen
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
<URL: http://rt.freeciv.org/Ticket/Display.html?id=7304 >
Jason Short wrote:
> <URL: http://rt.freeciv.org/Ticket/Display.html?id=7304 >
>
>>[rwetmore@xxxxxxxxxxxx - Tue Jan 27 03:15:14 2004]:
[...]
>>>>Where would you ever want to really use the map coordinates, apart from
>>>>adjacency calculations which can be hidden in few macros?
>>
>>These are the original server core coordinates for Freeciv, which are
>>exactly what you see in the original standard Earth map topology. The
>>neighbour relationships are geometrically precise which means that apart
>>from rotation/translation, they look like you would expect as a naive
>> user.
>
> This is a misleading statement. Native coordinates are also the
> original server core coordinates, since under orthogonal maps native and
> map coordinates are equivalent. Only by our definition (or lack of
> rigorous definition) has "map coordinates" come to mean the cartesian
> set of coordinates.
Absolutely not. You clearly still don't *get* native coordinates.
Iterators are all coded in map coordinates, as is the infamous Is_normalize
for checking all coordinates passed as arguments.
That native and map are indistinguishable in the original standard Earth
topology does not carry through that they are equal candidates in other
topologies. *That* is clearly a misleading statement.
> Note that in a hexagonally-tiled map "map coordinates" would be much
> less useful. Native coordinates could still exist, but map coordinates
> would not line up directly with the cartesian visualization. In fact
> there is no way to put a hexagonally-tiled map into cartesian
> coordinates, using only integers.
A hexagonal map can be represented perfectly well in map coordinates
with a filter to remove either of the diagonal directions from the
adjacency relationships, and a correction to distance determination.
Game mechanics which is what map coordiantes are used for would be
otherwise unchanged. The prototype for this already exists.
Native_to_hex is far more complex, and not suitable for core operations.
>
> P.S. I think "cartesian" coordinates is a good term for what we now
> call "map" coordinates.
Sure. That describes the underlying coordinate axes and helps with view,
but not Freeciv implications, which not surprisingly seem to be ignored.
>>In a similar fashion to the 5 x 10 argument above, they are also the
>>common coordinate system that all other coordinates must be able to
>>convert to and from. Thus one can always convert between arbitrary
>>coordinates with at most two steps going through map coordinates.
>>There are (n-1) such conversion functions as opposed to n x n.
>
>
> Also misleading. We could just as easily use any other form for this.
Except that map coordinates are the fundamental coordinates coded in this
way everwhere now, and any other system would involve a complete recoding
of much of the Freeciv codebase.
So, including practical/historical reality, this is far from misleading
but rather a clear statement of fact.
But the real point is that you need one common coordinate system to get
the correct structure for things to scale linearly.
[...]
> jason
Cheers,
RossW
=====
|
|