I'm trying to align an object so that it is perpendicular to the Earth's surface at the current position and with its X axis aligned with the Earth's polar axis -- pointed toward the North pole.
Here's the SSC definition:
Code: Select all
"clock_position" "Sol/Earth"
{
Radius 0.0001
Color [ 0 1 0]
OrbitFrame {BodyFixed{Center "Sol/Earth"}}
# LongLat [ -116.863800000000 33.355950000000 1.757175514351]
FixedPosition [ -2407.995293963999 -4753.859694051927 3507.914571886229]
}
# make perp to surface & 0 -> N.
Modify "clock_position" "Sol/Earth"
{
BodyFrame
{
TwoVector
{
Center "Sol/Earth/clock_position"
Primary
{
Axis "-z" # down
RelativePosition {Target "Sol/Earth"}
}
Secondary
{
Axis "x"
ConstantVector
{
Vector [ 0 0 1] # align my X with Earth's Z so 0 is toward north
Frame { BodyFixed { Center "Sol/Earth" } }
}
}
}
}
}
However, when I inspect the object's orientation, its longitude of 0 degrees points about 20 degrees west of North.
This URL takes you to the viewpoint shown in the image below:
20deg
It's looking down from above the object, toward the Earth's center.
The image was captured using Celestia built from svn so that the object's "planetographic grid" can be seen. The same problem can be seen in v1.5.1, although without the grid.
Instructions to reproduce this viewpoint:
+ Create an SSC using the code shown above.
+ Start Celestia using the URL provided above.
+ Right-Mouse-Button click on the green sphere and select Reference Vectors/ Show Body Axes
+ If you're running an svn version of Celestia,
___+ Right-Mouse-Button click on the green sphere and select Reference Vectors/ Show Planetographic grid
+ Right-Mouse-Button click on the Earth (the grey background) and select Reference Vectors/ Show Body Axes
+ Type Ctrl-W (Wire Frame view) so the Earth's axes are visible.
What am I doing wrong?