POV-Ray : Newsgroups : povray.binaries.scene-files : Delta Pavonis Celestial Mechanics Server Time
23 Nov 2024 16:18:42 EST (-0500)
  Delta Pavonis Celestial Mechanics (Message 1 to 1 of 1)  
From: David Buck
Subject: Delta Pavonis Celestial Mechanics
Date: 8 Jan 2009 06:06:20
Message: <4965de2c$1@news.povray.org>
The following scene file was created to explore a fictional world I 
created for a science fiction novel.  It's a binary planet system 
orbiting the star Delta Pavonis.  Planet you're on is Hestia and the 
sister planet is called Demeter.  The two planets are tidally locked to 
each other meaning that they always show the same face to the other 
planet like the moon is tidally locked to the Earth.  The Earth is not 
tidally locked to the moon because a day is different than a lunar month.

The three bodies are Hestia (Green) which represents the point of view 
from the position on the planet where the plot takes place, Demeter 
(Blue) which goes through all its phases in one day but remains fixed in 
place in the sky, and Delta Pavonis (white) which is the star we are 
orbiting.

The background stars are placed randomly and are only there for me to 
get an impression of how the stars would seem to travel across the night 
sky.

There are 4375 hours per Hestian year, so if you animate your clock from 
1 to 4375 you'll get a Hestian year's worth of simulation.

Copyright (c) 2009 David Buck
All Rights Reserved

Permission granted to use this scene to render this scene and adapt it 
to other celestial systems like Earth/Moon.


// Persistence of Vision Ray Tracer Scene Description File
// File: DeltaPavonis.pov
// Vers: 3.6
// Desc: Science Fiction World Simulation
// Date: mm/dd/yy
// Auth: David Buck
//

#version 3.6;

#include "colors.inc"

global_settings {
   assumed_gamma 1.0
}

#declare hours = clock;
#declare distanceScalar = 100.0;
#declare cameraUpAngle=-10;
#declare dayAngle = hours/33.60*360;
#declare yearAngle = hours/4375.05*360;
#declare latitude=90-67;
#declare longitude=15;
#declare tiltAngleFromEcliptical = 19.7;
#declare semimajorAxis = 93.49867969*distanceScalar;
#declare planetSeparationRadius = 0.02349726*distanceScalar;
#declare hestiaRadius = 0.004699*distanceScalar;
#declare demeterRadius = 0.004269*distanceScalar;
#declare starRadius = .737230*distanceScalar;
#declare starDistance = 1000.0*distanceScalar;
#declare numberOfStars = 300;



// ----------------------------------------

camera {
   location  <0.0, 0.0, 0.0>
   direction 1.5*z
   right     x*image_width/image_height
   rotate <cameraUpAngle, 0, 0>
   translate <0, hestiaRadius * 1.00001, 0>
   rotate<latitude, 0, 0>
   rotate<0, longitude, 0>
   translate <0, 0, -planetSeparationRadius>

   rotate <0, dayAngle, 0>
   rotate <tiltAngleFromEcliptical, 0, 0>
   rotate<0,-yearAngle,0>
   translate <0, 0, -semimajorAxis>
   rotate<0,yearAngle,0>
}


#declare deltaPavonis = object {
    sphere {<0,0,0>, starRadius}
    texture {
      pigment {color rgb <1,1,1>}
      finish {ambient .8 diffuse .6}
      }
   }

light_source {
   0*x
   color rgb <1,1,1>    // light's color
   looks_like { deltaPavonis }
}


union {
    // Demeter
    object {
       sphere {<0, 0, planetSeparationRadius> demeterRadius }
       texture {
         pigment {color rgb <0,0,1>}
         finish {ambient .02 diffuse 1}
         }
    }

// Hestia
    object {
       sphere {<0, 0, -planetSeparationRadius> hestiaRadius }
       texture {
         pigment {color rgb <0,1,0>}
         finish {ambient .02 diffuse 1}
         }
       }

    rotate <0, dayAngle, 0>
    rotate <tiltAngleFromEcliptical, 0, 0>
    rotate<0,-yearAngle,0>
    translate <0.0, 0.0, -semimajorAxis>
    rotate<0,yearAngle,0>
    }

#declare R1 = seed(1231);

#declare Index = 1;
#while(Index <= numberOfStars)
      object {
         sphere {<starDistance,0,0>, starRadius}
            texture {
              pigment {color rgb <1,1,1>}
              finish {ambient 1 diffuse 0}
         }
      rotate<0, rand(R1) * 360.0, 0>
      rotate<rand(R1) * 180.0 - 90.0, 0, 0>
      }

   #declare Index = Index + 1;
#end


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.