]> git.mxchange.org Git - flightgear.git/commitdiff
Initial revisions.
authorcurt <curt>
Sun, 14 Feb 1999 19:10:47 +0000 (19:10 +0000)
committercurt <curt>
Sun, 14 Feb 1999 19:10:47 +0000 (19:10 +0000)
Astro/Stars.info [new file with mode: 0644]
Astro/Stars.tex [new file with mode: 0644]
Sky/Sky.tex [new file with mode: 0644]
Sky/dome.fig [new file with mode: 0644]
Sky/earth.fig [new file with mode: 0644]
Sky/local.fig [new file with mode: 0644]

diff --git a/Astro/Stars.info b/Astro/Stars.info
new file mode 100644 (file)
index 0000000..9ab48f5
--- /dev/null
@@ -0,0 +1,140 @@
+=============================================================================
+
+
+A basic set of bright stars -- taken from the xephem program.
+
+Based on the 5th Revised edition of the Yale Bright Star Catalog, 1991, from
+ftp://adc.gsfc.nasa.gov/pub/adc/archives/catalogs/5/5050.
+
+Only those entries with a Bayer and/or Flamsteed number are retained
+here.
+
+Format: Constellation BayerN-Flamsteed, as available. Bayer is
+  truncated as requried to enforce a maximum total length of 13
+  imposed within xephem.
+
+Common names were then overlayed by closest position match from
+hand-edited a list supplied by Robert Tidd (inp@violet.berkeley.edu)
+and Alan Paeth (awpaeth@watcgl.waterloo.edu)
+
+
+=============================================================================
+
+
+Data file format:
+
+name , right assention (radians) , declination (radians) , magnitude (0.0 - 1.0)
+
+
+=============================================================================
+
+
+The following information is taken from:
+
+    http://www.lclark.edu/~wstone/skytour/celest.html
+
+Please visit the above site, it contains much more complete information.
+
+CELESTIAL MEASUREMENTS 
+
+RIGHT ASCENSION AND DECLINATION
+
+Although we know that the objects we see in the sky are of different
+sizes and at different distances from us, it is convenient to
+visualize all the objects as being attached to an imaginary sphere
+surrounding the Earth. From our vantage point, the sky certainly looks
+like a dome (the half of the celestial sphere above our local
+horizon). The celestial sphere is mapped in Right Ascension (RA) and
+Declination (Dec). Declination is the celestial equivalent of
+latitude, and is simply the Earth's latitude lines projected onto the
+celestial sphere. A star that can be directly overhead as seen from
+the Earth's Equator (0 degrees latitude) is said to be on the
+Celestial Equator, and has a declination of 0 degrees . The North
+Star, Polaris, is very nearly overhead as seen from the North Pole (90
+degrees North latitude). The point directly over the North Pole on the
+celestial sphere is called the North Celestial Pole, and has a
+declination of +90 degrees . Northern declinations are given positive
+signs, and southern declinations are given negative signs. So, the
+South Celestial Pole has a declination of -90 degrees .
+
+Right Ascension is the equivalent of longitude, but since the Earth
+rotates with respect to the celestial sphere we cannot simply use the
+Greenwich Meridian as 0 degrees RA. Instead, we set the zero point as
+the place on the celestial sphere where the Sun crosses the Celestial
+Equator (0 degrees Dec) at the vernal (spring) equinox.  The arc of
+the celestial sphere from the North Celestial Pole through this point
+to the South Celestial Pole is designated as Zero hours RA. Right
+Ascension increases eastward, and the sky is divided up into 24
+hours. This designation is convenient because it represents the
+sidereal day, the time it takes for the Earth to make one rotation
+relative to the celestial sphere. If you pointed a telescope (with no
+motor drive) at the coordinates (RA=0h, Dec=0 degrees ), and came back
+one hour later, the telescope would then be pointing at (RA=1h, Dec=0
+degrees ). Because the Earth's revolution around the Sun also
+contributes to the apparent motion of the stars, the day we keep time
+by (the solar day) is about four minutes longer than the sidereal
+day. So, if you pointed a telescope at (RA=0h, Dec=0 degrees ) and
+came back 24 hours later, the telescope would now be pointing at
+(RA=0h 4m, Dec=0 degrees). A consequence is that the fixed stars
+appear to rise about four minutes earlier each day.
+
+
+=============================================================================
+
+
+From: steve@mred.bgm.link.com (Steve Baker)
+Subject: Re:  FG: Fun in the sun ...
+Date: Tue, 5 Aug 97 15:37:27 -0500
+
+You probably ought to get the stars right too - there is a database
+of the 300 brightest stars in the 'Yale Bright Star Catalog' - which
+I enclose below.  I'd guess that you could navigate by the stars -
+so this might not be a completely useless feature - right?
+
+Anyway, if all else fails - and the flight sim never gets going - we
+could at least sell this as a planetarium :-)
+
+The format of the star data is:
+
+Name   Right-Ascension   Declination   Magnitude
+        
+(Ascension and Declination are in radians)
+
+We took the magnitude value, scaled it by 0.8 and added 0.2 to make
+a 0->1 brightness value. Using the raw data created too many very
+dark stars.
+
+Originally, there were constellation names as sub-headings - but I
+think I deleted them to make the file easier to parse :-) That makes
+the 'name' field pretty pointless.
+
+if you are still talking about the geocentric coordinate system
+where the terrain is modelled with Z pointing towards the North
+pole, X out of the 0 degree meridian at the equator and Y out at the
+Indian ocean at the equator - then you can position the stars using:
+
+    star[ X ] = fsin ( ra ) * fcos( decl ) ;
+    star[ Y ] = fcos ( ra ) * fcos( decl ) ;
+    star[ Z ] = fsin ( decl ) ;
+
+(which you can precompute at startup)
+
+...and then rotate them about the Z axis using GMT*two_pi/24.0
+#
+Put them all in a display list - use GL_POINTS as the primitive...
+
+  glNewList ( ...whatever... )
+  glBegin ( GL_POINTS ) ;
+
+  for ( int i = 0 ; i < num_stars ; i++ ) {
+    glColor3f ( star_brightness[i], star_brightness[i], star_brightness[i] ) ;
+    glVertex3f ( star_x[i], star_y[i], star_z[i] ) ;
+  }
+
+  glEnd () ;
+  glEndList () ;
+
+You need to draw them out by the far clip plane so they don't occult
+anything. Then you need to translate them using the same x/y/z as
+the eyepoint so that you can never fly any closer to them.
+
diff --git a/Astro/Stars.tex b/Astro/Stars.tex
new file mode 100644 (file)
index 0000000..5d64215
--- /dev/null
@@ -0,0 +1,207 @@
+%
+% `Stars.tex' -- describes our procedure for drawing stars
+%
+%  Written by Curtis Olson.  Started December, 1997.
+%
+% $Id$
+%------------------------------------------------------------------------
+
+
+\documentclass[12pt]{article}
+
+\usepackage{anysize}
+\papersize{11in}{8.5in}
+\marginsize{1in}{1in}{1in}{1in}
+
+\usepackage{amsmath}
+
+\usepackage{epsfig}
+
+\usepackage{setspace}
+\onehalfspacing
+
+\usepackage{url}
+
+
+\begin{document}
+
+
+\title{
+  Flight Gear Stars Representation and Rendering.
+}
+
+
+\author{
+    Curtis L. Olson\\ 
+    (\texttt{curt@me.umn.edu})
+}
+
+
+\maketitle
+
+
+\section{Introduction}
+
+Flight Gear attempts to render the top several hundred stars in the
+correct position in the sky for the current time and position as will
+as rendering these stars with the correct ``magnitude''.
+
+This document will give a quick overview of our approach.
+
+\section{Resources}
+
+\subsubsection{XEphem}
+
+The set of bright stars was extracted from the xephem program.  For a
+full list of features and the latest news, please see the xephem home
+page at \url{http://iraf.noao.edu/~ecdowney/xephem.html}.  The XEphem
+star list was itself taken from the Yale Bright Star Catalog.
+
+\begin{quote}
+  Based on the 5th Revised edition of the Yale Bright Star Catalog,
+  1991, from ftp://adc.gsfc.nasa.gov/pub/adc/archives/catalogs/5/5050.
+  
+  Only those entries with a Bayer and/or Flamsteed number are retained
+  here.
+  
+  Format: Constellation BayerN-Flamsteed, as available. Bayer is
+  truncated as required to enforce a maximum total length of 13
+  imposed within xephem.
+  
+  Common names were then overlayed by closest position match from
+  hand-edited a list supplied by Robert Tidd (inp@violet.berkeley.edu)
+  and Alan Paeth (awpaeth@watcgl.waterloo.edu)
+\end{quote}
+
+The author of XEphem, Elwood Downey (ecdowney@noao.edu), was very
+instrumental in helping me understand sidereal time, accurate star
+placement, and even contributed some really hairy sections of code.
+Thanks Elwood!
+
+
+\section{Terminology and Definitions}
+
+The following information is repeated verbatim from
+\url{http://www.lclark.edu/~wstone/skytour/celest.html}: If you are
+interested in these sorts of things I urge you to visit this site.  It
+contains much more complete information.
+
+\subsection{Celestial Measurements} 
+
+Although we know that the objects we see in the sky are of different
+sizes and at different distances from us, it is convenient to
+visualize all the objects as being attached to an imaginary sphere
+surrounding the Earth.  From our vantage point, the sky certainly
+looks like a dome (the half of the celestial sphere above our local
+horizon).  The celestial sphere is mapped in Right Ascension (RA) and
+Declination (Dec).
+
+\subsubsection{Declination}
+
+Declination is the celestial equivalent of latitude, and is simply the
+Earth's latitude lines projected onto the celestial sphere. A star
+that can be directly overhead as seen from the Earth's Equator (0
+degrees latitude) is said to be on the Celestial Equator, and has a
+declination of 0 degrees . The North Star, Polaris, is very nearly
+overhead as seen from the North Pole (90 degrees North latitude). The
+point directly over the North Pole on the celestial sphere is called
+the North Celestial Pole, and has a declination of +90 degrees .
+Northern declinations are given positive signs, and southern
+declinations are given negative signs. So, the South Celestial Pole
+has a declination of -90 degrees .
+
+\subsubsection{Right Ascension \& Sidereal Time}
+
+Right Ascension is the equivalent of longitude, but since the Earth
+rotates with respect to the celestial sphere we cannot simply use the
+Greenwich Meridian as 0 degrees RA. Instead, we set the zero point as
+the place on the celestial sphere where the Sun crosses the Celestial
+Equator (0 degrees Dec) at the vernal (spring) equinox.  The arc of
+the celestial sphere from the North Celestial Pole through this point
+to the South Celestial Pole is designated as Zero hours RA. Right
+Ascension increases eastward, and the sky is divided up into 24
+hours. This designation is convenient because it represents the
+sidereal day, the time it takes for the Earth to make one rotation
+relative to the celestial sphere. If you pointed a telescope (with no
+motor drive) at the coordinates (RA=0h, Dec=0 degrees ), and came back
+one hour later, the telescope would then be pointing at (RA=1h, Dec=0
+degrees ). Because the Earth's revolution around the Sun also
+contributes to the apparent motion of the stars, the day we keep time
+by (the solar day) is about four minutes longer than the sidereal
+day. So, if you pointed a telescope at (RA=0h, Dec=0 degrees ) and
+came back 24 hours later, the telescope would now be pointing at
+(RA=0h 4m, Dec=0 degrees). A consequence is that the fixed stars
+appear to rise about four minutes earlier each day.
+
+
+\subsection{Implementation}
+
+Here is a brief overview of how stars were implemented in Flight Gear.
+The right ascension and declination of each star is used to build a
+structure of point objects to represent the stars.  The magnitude is
+mapped into a color on the gray/white continuum.  The points are
+positioned just inside the far clip plane.  When rendering the stars,
+this structure (display list) is rotated about the $Z$ axis by the
+current sidereal time and translated to the current view point.
+
+\subsubsection{Data file format}
+
+The star information is stored in a simple data file called
+``Stars.dat'' with the following comma delimited format: name, right
+ascension(radians), declination(radians), magnitude(smaller is
+brighter).  Here is an extract of the data file:
+
+\begin{verbatim}
+Sirius,1.767793,-0.266754,-1.460000
+Canopus,1.675305,-0.895427,-0.720000
+Arcturus,3.733528,0.334798,-0.040000
+Rigil Kentaurus,3.837972,-1.032619,-0.010000
+Vega,4.873563,0.676902,0.030000
+Capella,1.381821,0.802818,0.080000
+Rigel,1.372432,-0.136107,0.120000
+Procyon,2.004082,0.091193,0.380000
+Achernar,0.426362,-0.990707,0.460000
+\end{verbatim}
+
+\subsubsection{Building the display list}
+
+The display list is built up from a collection of point objects as the
+star data file is loaded.  For each star, the magnitude is mapped into
+a brightness value from 0.0 to 1.0 with 1.0 being the brightest.  Our
+coordinate system is described in the coordinate system document: Z
+points towards the North pole, X out of the 0 degree meridian at the
+equator, and Y out at the Indian ocean at the equator.  Given this
+coordinate system, the position of each star at 0:00H sidereal time is
+calculated as follows:
+
+\begin{align}
+x &= \mathrm{distance} * \cos(\mathrm{rightascension}) * 
+     \cos(\mathrm{declination}) \\
+y &= \mathrm{distance} * \sin(\mathrm{rightascension}) * 
+     \cos(\mathrm{declination}) \\
+z &= \mathrm{distance} * \sin(\mathrm{declination})
+\end{align}
+
+\subsubsection{Transformations and Rendering}
+
+The tricky part about rendering the stars is calculating sidereal time
+correctly.  Here's where Elwood Downey saved my butt.  0:00H sidereal
+time aligns with 12:00 noon GMT time on March 21 of every year.  After
+that they diverge by about 4 minutes per day.  The solar day is
+approximately 4 minutes longer than the side real day.  Once you know
+the proper sidereal time, you simply translate the center of the star
+structure to the current view point, then rotate this structure about
+the Z axis by the current sidereal time.
+
+The stars are drawn out by the far clip plane so they don't occult
+anything.  They are translated using the same x/y/z as the eye point
+so that you can never fly any closer to them.
+
+\end{document}
+
+
+%------------------------------------------------------------------------
+% $Log$
+% Revision 1.1  1999/02/14 19:10:47  curt
+% Initial revisions.
+%
diff --git a/Sky/Sky.tex b/Sky/Sky.tex
new file mode 100644 (file)
index 0000000..f8e0b5e
--- /dev/null
@@ -0,0 +1,228 @@
+%
+% `Sky.tex' -- describes the sky rendering procedure
+%
+%  Written by Curtis Olson.  Started December, 1997.
+%
+% $Id$
+%------------------------------------------------------------------------
+
+
+\documentclass[12pt]{article}
+
+\usepackage{anysize}
+\papersize{11in}{8.5in}
+\marginsize{1in}{1in}{1in}{1in}
+
+\usepackage{amsmath}
+
+\usepackage{epsfig}
+
+\usepackage{setspace}
+\onehalfspacing
+
+\usepackage{url}
+
+
+\begin{document}
+
+
+\title{
+  Flight Gear Sky Representation and Rendering.
+}
+
+
+\author{
+    Curtis L. Olson\\ 
+    (\texttt{curt@me.umn.edu})
+}
+
+
+\maketitle
+
+
+\section{Introduction}
+
+No flight simulator should be without a nice sky that smoothly
+transitions into haze at the horizon.  Such a sky should also be able
+to render sunrise and sunset effects.  This document describes how we
+have implemented such a sky.
+
+\section{Overview}
+
+The sky is represent as a 12 sided dome (or upside down bowl if you
+prefer.)  Figure \ref{fig:dome} shows how a 6 sided dome might be
+constructed.
+
+\begin{figure}[hbt]
+  \centerline{                   
+      \psfig{file=dome.eps}
+  }
+  \caption{Simplified (6 Sided) Sky Dome}
+  \label{fig:dome}
+\end{figure}
+
+The center section can be constructed with a triangle fan.  The inner
+and outer ``skirts'' can be constructed with triangle strips.
+
+The colors of each vertex can be independently controlled to achieve
+sky to haze transitions, sunrise/sunset effects with a pinkish/oranges
+glow, and one side of the sky can easily be made brighter than the
+other.  By enabling smooth shading in OpenGL, the colors will be
+blended together for a very nice effect.
+
+
+\section{Implementation}
+
+This sections describes how the sky has been implemented in OpenGL.
+
+\subsection{Vertex Generation}
+
+The sky dome structure is intended to be centered over the current
+view point at sea level.  This way we could paste cloud textures on
+the dome if we liked.  So, we simply have to generate vertices for a
+fixed dome, and then use OpenGL calls to transform and rotate it to
+the desired place.  Please refer to the actual code
+(.../Src/Scenery/sky.c) for specifics, but
+to generate the vertices we simply create a 12 element array for the
+inner set of vertices, another 12 element array for the middle set of
+vertices and a last 12 element array for the outer set of vertices.
+
+\subsection{Vertex Coloring}
+
+For each vertex position array, there is a corresponding vertex color
+array.  This way we don't have to compute each vertex color every
+iteration.  Also, by being able to individually control the color at
+each vertex, we can do all sorts of nice sky to haze blending with
+dusk and dawn effects.  Again, please refer to the source
+(.../Src/Scenery/sky.c) for specific details on how the coloring is
+implemented.  However, here's the quick overview.
+
+\subsubsection{Day and Night Coloring}
+
+For the general middle of the day, or middle of the night sky, we
+already know the desired sky color, and the haze color.  This is
+computed elsewhere based on the current sun position.  During the
+night these colors are both nearly black.  During the dawn they are
+smoothly transitioned to day time colors.  And, during the dusk they
+are smoothly transitioned back to night time colors.
+
+The center of the dome is assigned the current sky color.  The color
+of the first inner ring of vertices is weighted 70\% towards the sky
+color and 30\% towards the fog color.
+
+Then color of the middle ring of vertices is weighted 10\% towards the
+sky color and 90\% towards the fog color.
+
+The the outer ring of vertices are assigned the current fog color.
+
+\subsubsection{Dusk and Dawn Effects}
+
+Dusk and dawn effects can be accomplished by controlling the color of
+the vertices.  Rather than trying to figure out which vertices are
+near the current sun position, I just rotate the dome so the 0'th
+vertex of each ring (and the center fan) align with the sun.  This
+makes it easier to calculate vertex colors.  But, there is a fair
+amount of work involved in calculating the proper dome rotation.
+
+\begin{figure}[hbt]
+  \centerline{                   
+      \psfig{file=earth.eps}
+  }
+  \caption{Overview of Earth}
+  \label{fig:earth}
+\end{figure}
+
+Figure \ref{fig:earth} shows an overview of the setup.  $P$, the
+current view position, and $\mathbf{n}$, the local ``up'' vector,
+define the plane which is tangent to the Earth's surface at point $P$.
+Just for a quick review of your linear algebra, given $\mathbf{v_0}$,
+the position vector of $P$ and $\mathbf{v}$, the position vector of
+some other arbitrary point on the plane, and $\mathbf{n}$, the normal
+to the plane, then the vector $\mathbf{n}$ and the vector $(\mathbf{v}
+- \mathbf{v_0})$ are orthogonal (perpendicular.)  If the two vectors
+are orthogonal then their dot product will be zero, so the following
+must be true:
+
+\begin{equation}
+  \mathbf{n} \cdot ( \mathbf{v} - \mathbf{v_0} ) = 0
+\end{equation}
+
+This is the vector equation of the plane and can be rewritten as:
+
+\begin{align}
+  a(x - x_0) + b(y - y_0) + c(z - z_0) &= 0 \\
+  ax + by + cz - (\mathbf{n} \cdot \mathbf{v_0}) &= 0
+\end{align}
+
+We want to find a vector $\mathbf{v}$ representing the
+direction along the current tangent plane towards the position on the
+Earth where the Sun is directly overhead.  The vector $\mathbf{u}$ is
+defined as $\vec{\mathbf{PS}}$.
+
+\begin{figure}[hbt]
+  \centerline{                   
+      \psfig{file=local.eps}
+  }
+  \caption{Vectors and Points in Local Coordinate System}
+  \label{fig:local}
+\end{figure}
+
+Figure \ref{fig:local} shows a more detailed ``local'' view of the
+points and vectors involved.  The point, $P$, is the current view
+point.  The vector, $\mathbf{n}$, is the local up vector.  $S$
+represents the current position on the Earth's surface where the Sun
+is directly overhead.  We want to find the vector, $\mathbf{v}$ which
+is a projection of $\mathbf{u}$ onto the plane defined by $P$ and
+$\mathbf{n}$.
+
+To do this we first calculate $\mathbf{u_1}$ which is the shortest
+distance from point $S$ to the tangent plane.
+
+\begin{equation}
+  \mathbf{u_1} = \frac { \mathbf{n} \cdot \mathbf{u} }
+             { {\| \mathbf{n} \|}^2 } \mathbf{n}
+\end{equation}
+
+Armed with $\mathbf{u_1}$ we can now calculate
+$\mathbf{v}$ which is the local surface direction on the tangent
+plane towards the sun, $S$.
+
+\begin{equation}
+  \mathbf{v} = \mathbf{v_0} + \mathbf{u} - \mathbf{u_1}
+\end{equation}
+
+Ok, so now we have $\mathbf{v}$, but the fun doesn't stop here.  Now
+we need to calculate a rotation angle $\theta$ about $\mathbf{n}$ to
+align our dome with $\mathbf{v}$.  The origin of the dome always
+aligns with a vector pointing directly South.  So, we need to repeat
+the above procedure to map a vector pointing straight down $( 0, 0,
+-\mathbf{z} )$ onto our tangent plane to produce the local, surface,
+south vector $\mathbf{w}$.  We then take the $\arccos()$ of the dot product
+of $\mathbf{v}$ with $\mathbf{w}$.
+
+\begin{equation}
+  \theta = \arccos( \mathbf{v} \cdot \mathbf{w} )
+\end{equation}
+
+Whew, that gives us the angle we want.  Well almost, not quite.  The
+problem is that the dot product returns a number in the range of
+$(-1.0 \ldots 1.0)$. Thus, the $\arccos()$ function returns a $\theta$
+in the range of $(0.0 \ldots 180.0)$.  But this is not enough
+information to determine if $\mathbf{v}$ is in the east hemisphere or
+west hemisphere and if this angle should be positive or negative.
+
+So, to get that last piece of information we need, we can rotate the
+vector $\mathbf{w}$ by 90 degrees about $\mathbf{n}$.  This gives us
+the local surface east vector on the tangent plane.  Taking the dot
+product of $\mathbf{v}$ and the local east vector tells us which
+hemisphere $\mathbf{v}$ is in.  And, from this, we can uniquely
+determine the proper angle for the sky dome rotation.
+
+\end{document}
+
+
+%------------------------------------------------------------------------
+% $Log$
+% Revision 1.1  1999/02/14 19:12:21  curt
+% Initial revisions.
+%
diff --git a/Sky/dome.fig b/Sky/dome.fig
new file mode 100644 (file)
index 0000000..aef865c
--- /dev/null
@@ -0,0 +1,47 @@
+#FIG 3.2
+Portrait
+Center
+Inches
+Letter 
+100.00
+Single
+0
+1200 2
+2 1 0 2 0 7 0 0 -1 0.000 0 0 -1 0 0 7
+        4800 2700 3375 3450 4050 4500 6600 4500 7725 3450 6750 2700
+        4800 2700
+2 1 0 2 0 7 0 0 -1 0.000 0 0 -1 0 0 8
+        3375 3450 2700 4500 2400 5400 3300 7200 7500 7200 8700 5400
+        8400 4500 7725 3450
+2 1 0 2 0 7 0 0 -1 0.000 0 0 -1 0 0 4
+        2700 4500 3450 5850 7200 5850 8400 4500
+2 1 0 2 0 7 0 0 -1 0.000 0 0 -1 0 0 3
+        3300 7200 3450 5850 4050 4500
+2 1 0 2 0 7 0 0 -1 0.000 0 0 -1 0 0 3
+        6600 4500 7200 5850 7500 7200
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+        3375 3450 3450 5850
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+        4050 4500 7200 5850
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+        6600 4500 8400 4500
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+        2700 4500 3300 7200
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+        3450 5850 7500 7200
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+        7200 5850 8700 5400
+2 1 2 1 0 7 0 0 -1 4.000 0 0 -1 0 0 4
+        2700 4500 4125 3600 7275 3600 8400 4500
+2 1 2 1 0 7 0 0 -1 4.000 0 0 -1 0 0 3
+        6750 2700 7275 3600 7350 4350
+2 1 0 1 0 7 0 0 -1 4.000 0 0 -1 0 0 3
+        4050 4500 5625 3075 6750 2700
+2 1 0 1 0 7 0 0 -1 4.000 0 0 -1 0 0 3
+        4800 2700 5625 3075 6600 4500
+2 1 2 1 0 7 0 0 -1 4.000 0 0 -1 0 0 4
+        2400 5400 4050 4350 7350 4350 8700 5400
+2 1 2 1 0 7 0 0 -1 4.000 0 0 -1 0 0 3
+        4050 4350 4125 3600 4800 2700
+2 1 0 1 0 7 0 0 -1 4.000 0 0 -1 0 0 3
+        3375 3450 5625 3075 7725 3450
diff --git a/Sky/earth.fig b/Sky/earth.fig
new file mode 100644 (file)
index 0000000..fd19619
--- /dev/null
@@ -0,0 +1,44 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+5 1 0 2 0 7 0 0 -1 0.000 0 1 0 0 4800.000 -4650.000 2400 4800 4800 5100 7200 4800
+5 1 0 2 0 7 0 0 -1 0.000 0 0 0 0 14250.000 4800.000 4800 7200 4500 4800 4800 2400
+5 1 2 1 0 7 0 0 -1 3.000 0 1 0 0 -4650.000 4800.000 4800 7200 5100 4800 4800 2400
+5 1 2 1 0 7 0 0 -1 3.000 0 0 0 0 4800.000 14250.000 2400 4800 4800 4500 7200 4800
+1 3 0 2 0 7 0 0 -1 0.000 1 0.0000 4800 4800 2400 2400 4800 4800 7200 4800
+1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 4800 4800 25 25 4800 4800 4820 4815
+1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 6300 4200 25 25 6300 4200 6320 4215
+2 1 2 1 0 7 0 0 -1 3.000 0 0 -1 0 0 2
+        4500 5100 5100 4500
+2 1 0 1 0 7 0 0 -1 4.000 0 0 -1 0 0 2
+        6600 5400 7800 4200
+2 1 2 1 0 7 0 0 -1 3.000 0 0 -1 0 0 2
+        2400 4800 7200 4800
+2 1 0 2 0 7 0 0 -1 6.000 0 0 -1 0 0 5
+        6600 4200 6600 6600 7800 5400 7800 3000 6600 4200
+2 1 0 1 0 7 0 0 -1 4.000 0 0 -1 0 0 2
+        7200 3600 7200 6000
+2 1 0 1 0 -1 0 0 20 4.000 0 0 -1 1 0 2
+       1 1 1.00 60.00 120.00
+        7200 4800 6750 4200
+2 1 0 1 0 -1 0 0 20 4.000 0 0 -1 1 0 2
+       1 1 1.00 60.00 120.00
+        7200 4800 6300 4200
+2 1 2 1 0 -1 0 0 20 3.000 0 0 -1 1 0 2
+       1 1 1.00 60.00 120.00
+        6750 4200 6300 4200
+2 1 0 1 0 -1 0 0 20 4.000 0 0 -1 1 0 2
+       1 1 1.00 60.00 120.00
+        7200 4800 8100 4800
+4 0 0 0 0 0 14 0.0000 4 105 105 8175 4875 n\001
+4 0 0 0 0 0 14 0.0000 4 150 120 7275 5025 P\001
+4 0 0 0 0 0 14 0.0000 4 105 105 6825 4200 v\001
+4 0 0 0 0 0 14 0.0000 4 195 645 5625 4275 S (Sun)\001
+4 0 0 0 0 0 14 0.0000 4 105 105 6375 4500 u\001
+4 0 0 0 0 0 14 0.0000 4 195 525 4800 5025 Origin\001
diff --git a/Sky/local.fig b/Sky/local.fig
new file mode 100644 (file)
index 0000000..1e51829
--- /dev/null
@@ -0,0 +1,45 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 4500 8700 21 21 4500 8700 4515 8715
+1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 6900 8100 21 21 6900 8100 6915 8115
+1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 6900 6600 21 21 6900 6600 6915 6615
+1 3 0 1 0 -1 0 0 20 0.000 1 0.0000 5700 6000 21 21 5700 6000 5715 6015
+2 1 0 2 0 7 0 0 -1 0.000 0 0 -1 0 0 5
+        1800 7200 4200 4800 9600 4800 7200 7200 1800 7200
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+        4500 7200 6900 4800
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+        3000 6000 8400 6000
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+       1 1 1.00 60.00 120.00
+        5700 6000 5700 4200
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+       1 1 1.00 60.00 120.00
+        5700 6000 6900 8100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+       1 1 1.00 60.00 120.00
+        5700 6000 6900 6600
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+       0 0 1.00 60.00 120.00
+        6900 6600 6900 8100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+       1 1 1.00 60.00 120.00
+        4500 8700 5686 5994
+4 0 0 0 0 0 14 0.0000 4 105 105 6825 6450 v\001
+4 0 0 0 0 0 14 0.0000 4 195 645 6750 8325 S (Sun)\001
+4 0 0 0 0 0 14 0.0000 4 105 105 6975 7500 u\001
+4 0 0 0 0 0 10 0.0000 4 105 75 7080 7568 1\001
+4 0 0 0 0 0 14 0.0000 4 195 525 4200 8925 Origin\001
+4 0 0 0 0 0 14 0.0000 4 150 120 5475 5850 P\001
+4 0 0 0 0 0 10 0.0000 4 105 75 5550 5925 0\001
+4 0 0 0 0 0 14 0.0000 4 105 105 5625 6375 v\001
+4 0 0 0 0 0 10 0.0000 4 105 75 5700 6450 0\001
+4 0 0 0 0 0 14 0.0000 4 105 105 6450 7725 u\001
+4 0 0 0 0 0 14 0.0000 4 105 105 5625 4125 n\001