CoordinateSystems
Several different CoordinateSystems are in use simultaneously in There in different contexts.
Global Cartesian
The main user-visible co-ordinate system in the MetaVerse is a 3-dimensional Cartesian system of X, Y and Z co-ordinates with its origin at the exact centre of PlanetThereia. The fundamental unit of linear measurement on each of these axes is the “scale metre” or just “metre”. In the MetaVerse, a male avatar stands 2.4m high where in the real world most people reach less than 2m in height: one way of looking at this is that avatars are taller, another would be that MetaVerse metres are a bit shorter than real world ones.
The point on the surface of PlanetThereia where X=Y=0
is on the side of the volcano on Caldera. The equator and prime meridian therefore pass through this location. At this location, increasing values of X
take you East, while increasing values of Y
take you North. Similarly, the global Cartesian Z axis points to the centre of the planet at this location.
Radius and Altitude
In such a co-ordinate system, the distance r
of any object from the origin can be determined from the following equation:
r = sqrt(x*x + y*y + z*z)
PlanetThereia has a radius of six million metres, in the sense that the reference point for terrain at a given point on the planet is exactly six million metres from X=Y=Z=0; again, this puts it roughly at the same size as planet Earth. An object’s height relative to the terrain system is therefore:
t = sqrt(x*x + y*y + z*z) - 6000000.0
If you drop a “point object” such as an invisible quest clue on the ocean, you will find that its location is exactly 0.3m below the terrain reference. Another way of saying this is that Mean Sea Level is at 5999999.70m from the global origin, and that an object’s altitude above MSL is:
a = sqrt(x*x + y*y + z*z) - 5999999.70
Global Spherical plus Local Cartesian
One of the dasps associated with a dob contains the location of a local reference frame expressed in a global spherical coordinate system. A second dasp contains a local Cartesian offset from that position to the object’s position. This two-part system is used to compress the transmission of position information. Each of the two dasps making up a complete position is marked with a “parity” value to prevent the two parts being used out of context, for example when moving from one reference frame to another.
The global spherical coordinate system consists of:
-
r
, a distance from the centre of PlanetThereia. This means that the origin of the global spherical coordinate system is the same as the origin of the global Cartesian coordinate system. -
theta
, an angle expressed in degrees. This represents longitude, with positive values being East of the prime meridian. This value is usually expressed in an excess-360 form, so that 2 degrees West would be expressed as 358 degrees East. -
phi
, an angle expressed in degrees. This represents latitude, with positive values being North of the Equator. The North Pole is atphi=+90
, the South Pole is atphi=-90
.
Objects in the same general area tend to have common global spherical coordinate references. Speculation: the reference point used is a reference point for the whole sector.
Observed values of r
have all been of the form 6e6 + n*128
. For example: 6000128
, 6000640
.
To convert from global spherical to global cartesian coordinates:
X = r . cos(phi) . sin(theta)
Y = r . sin(phi)
Z = r . cos(phi) . cos(theta)
For example, an object might have the following positional dasps:
ObstacleDasp={code=1
global={ globalPos={
r=6.0001280000000000e+006
theta=8.6874189364461757e-002
phi=-6.8742942594681722e-002
} globalParity=0}
}
ObstacleDasp={code=2
local={ local={globalParity=0 posMode=0 outAndAbout={ localPos={
localX=1.7002791310687689e+002
localY=1.4822028552068969e+002
localZ=7.6866735871665924e+001
} } } heading=-1.8100000000000000e+002}
}
The position of the reference frame is:
X = r . cos(phi) . sin(theta) = 9097.6
Y = r . sin(phi) = -7198.9
Z = r . cos(phi) . cos(theta) = 6000116.8
The position of the object is:
X = 9097.6 + localX = 9267.6
Y = -7198.9 + localY = -7050.7
Z = 6000116.8 + localZ = 6000193.7
Zone Local
Objects within a PortaZone have positions expressed in a 3-dimensional Cartesian co-ordinate system relative to the PortaZone.