How do I get Belle Hades to properly precess?

Have a question about using Celestia? Check here first for FAQs and helpful advice.
Forum rules
Please help to make this forum more useful by checking the FAQs before posting! Keep it clean, keep it civil, keep it truthful, stay on topic, be responsible, share your knowledge.
Avatar
Topic author
PlutonianEmpire M
Posts: 1374
Joined: 09.09.2004
Age: 40
With us: 20 years 2 months
Location: MinneSNOWta
Contact:

How do I get Belle Hades to properly precess?

Post #1by PlutonianEmpire » 15.10.2010, 01:22

Recently, I've overhauled my Belle Hades planet, and I've been trying to implement precession.

However, I can't get it to precess properly, where the poles of the planet would rotate around the polar axis of the planet's orbit.

I've tried using reference frames, such as TwoVector, and other techniques, but none of them work.

Here's the full, unmodified code for the planet, before my attempts to implement precession:

Code: Select all

"Belle Hades" "DEL Tri" {
    Texture "bellehades21b.png"
    NightTexture "bellehades21-night.png"
    BumpMap "bellehades21b-bump.png"
    BumpHeight 0.5
    Color [ 0.85 0.85 1.00 ]
    HazeColor [ 0.40 0.60 1.00 ]
    HazeDensity 0.750
    Radius 5672.6753
    Mass 0.71

SpecularTexture "bellehades21-spec.png"
    SpecularColor [ 0.80 0.80 0.85 ]
    SpecularPower 25

    Atmosphere {
        Height 67
        Lower [ 0.40 0.60 1.00 ]
        Upper [ 0.00 0.00 0.50 ]
        Sky   [ 0.20 0.40 1.00 ]
        CloudHeight 7
        CloudSpeed 45.000
        CloudMap "bellehades-clouds.png"

        Mie 0.0012
        MieAsymmetry -0.26
        Rayleigh [ 0.001 0.0025 0.006 ]
        MieScaleHeight 13.5
    }

    EllipticalOrbit {
        Period            0.90862422997946611909650924024641
        SemiMajorAxis     1.1395600028081014
        Eccentricity      0.0127
        Inclination       57.2232
        AscendingNode     123.5636
        ArgOfPericenter   26.8286
        MeanAnomaly       286.4439
    }

    RotationPeriod          26.0431
    EquatorAscendingNode   123.0612
    Obliquity               76.6284
    #Obliquity 58.8232
   
    Albedo           0.32
}


And here's the TwoVector reference frame I tried:

Code: Select all

    BodyFrame {
        TwoVector {
            Center "DEL Tri/Belle Hades"
            Primary {
                Axis "y"
                RelativePosition { Target "DEL Tri" }
            }
            Secondary {
                Axis "-x"
                RelativeVelocity { Target "DEL Tri" }
            }
        }
    }


And the precession model:

Code: Select all

   PrecessingRotation {
      Period 26.0431
      PrecessionPeriod 21000
      Inclination 19.4052
      AscendingNode 123.0612
      MeridianAngle 328.2107
      Epoch "2012 12 21 17:00:00"
   }


The problem with this setup should be obvious once displayed in Celestia. There's a few other reference frames I tried, but none of them worked. I'm using Celestia 1.6.0 .
Terraformed Pluto: Now with New Horizons maps! :D

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Re: How do I get Belle Hades to properly precess?

Post #2by selden » 15.10.2010, 02:30

You're going to have to say what it is that you're actually trying to accomplish.

If you want the planet to experience the standard form of precession (its rotational axis itself slowly rotating around a perpendicular to the ecliptic), you don't need a TwoVector declaration. Just replace the old-fashioned rotational element declarations by the PrecessingRotation block of code.
Selden

Avatar
Topic author
PlutonianEmpire M
Posts: 1374
Joined: 09.09.2004
Age: 40
With us: 20 years 2 months
Location: MinneSNOWta
Contact:

Re: How do I get Belle Hades to properly precess?

Post #3by PlutonianEmpire » 15.10.2010, 03:03

I'm trying to get the rotational axis of Belle Hades to rotate around a perpendicular to its own ecliptic, not the Earth's ecliptic.
Terraformed Pluto: Now with New Horizons maps! :D

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Re: How do I get Belle Hades to properly precess?

Post #4by selden » 16.10.2010, 14:23

I've managed to construct an SSC file which causes the axis of rotation of an object to itself rotate around the local ecliptic coordinate system's "north-south" axis; i.e. to precess.

My procedure was to define a reference object which has the desired orbital inclination relative to the Earth's ecliptic and which has its rotational axis perpendicular to that orbit. This reference object rotates with a period with is the same as the desired period of precession. The visible object then is defined relative to that reference object. The visible object is declared with the desired rotational parameters. The rotating reference object carries the visible object's axis around, causing it to experience an appropriate precession of equinoxes.

The result is somewhat awkward to view, but I think it's about the best that can be done until something like a "LocalEcliptic" feature is added to Celestia.

Don't forget to change the obliquity of the Star, too, so that it roughly agrees with the planetary orbital plane. (The Sun's rotational axis is off by about 7 degrees, so an exact match isn't necessary for plausibility.)

Code: Select all


# the reference object
# when in use, set its name to be the desired planet name
"ObliqueReference" "ObliqueStar"
{
   Radius 6600

# my model has axial protrusions to aid in testing
# specifying an undefined model will cause the reference object to be invisible
#but without some of the issues associated with using
# Class "invisible"
   Mesh "sphere-axis.cmod"

   Color [ 0 1 1 ]

# define the orbit of the planet
    EllipticalOrbit {
        Period            0.90862422997946611909650924024641
        SemiMajorAxis     1.1395600028081014
        Eccentricity      0.0127
        Inclination       57.2232
        AscendingNode     123.5636
        ArgOfPericenter   26.8286
        MeanAnomaly       286.4439
    }

# define the precession
    UniformRotation {
# This Period is the precession measured in hours *not*years*
# This example value is small so it can be easily watched
    Period 12000   
   Inclination 57.2232
   AscendingNode 123.5636
   }
}

# define the planet that will be visible
# its name probably should not be the desired planet name
# perhaps <planet name>-Surface or something similar
"ORSurface" "ObliqueStar/ObliqueReference"
{
   Radius 6000
#   Mesh "sphere-axis.cmod"
   Texture "Earth.*"

# place it relative to the reference object
   OrbitFrame { BodyFixed { Center "ObliqueStar/ObliqueReference" }}
   FixedPosition [ 0 0 0 ]

# rotate it relative to the reference object
   BodyFrame  { BodyFixed { Center "ObliqueStar/ObliqueReference" }}
   UniformRotation {
      Period 24
      Inclination  23
      AscendingNode 123.5636
   }

}
Selden

Avatar
Topic author
PlutonianEmpire M
Posts: 1374
Joined: 09.09.2004
Age: 40
With us: 20 years 2 months
Location: MinneSNOWta
Contact:

Re: How do I get Belle Hades to properly precess?

Post #5by PlutonianEmpire » 16.10.2010, 19:10

Thank you! :)
Terraformed Pluto: Now with New Horizons maps! :D

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Re: How do I get Belle Hades to properly precess?

Post #6by selden » 16.10.2010, 21:28

You're very welcome.

I've also submitted a SourceForge tracker request for a LocalEcliptic feature.
Selden


Return to “Help Central”