コード例 #1
0
        public void SaturnRings()
        {
            double jd = 2448972.5 + 0.00068;

            CrdsHeliocentrical earth  = PlanetPositions.GetPlanetCoordinates(3, jd, true);
            CrdsHeliocentrical saturn = PlanetPositions.GetPlanetCoordinates(6, jd, true);

            RingsAppearance rings = PlanetEphem.SaturnRings(jd, saturn, earth, 23.43971);

            Assert.AreEqual(35.87, rings.a, 1e-2);
            Assert.AreEqual(10.15, rings.b, 1e-2);
            Assert.AreEqual(16.442, rings.B, 1e-3);
            Assert.AreEqual(4.198, rings.DeltaU, 1e-3);
            Assert.AreEqual(6.741, rings.P, 1e-3);
        }
コード例 #2
0
ファイル: SolarSystemRenderer.cs プロジェクト: t9mike/ADK
        private void DrawRingsUntextured(Graphics g, RingsAppearance rings, int half, double scale)
        {
            float startAngle = -180 * half + ((rings.B > 0) ? 180 : 0) - 1e-2f;

            // three rings
            for (int r = 0; r < 3; r++)
            {
                float aOut = (float)(rings.GetRingSize(r, RingEdge.Outer, RingAxis.Major) * scale);
                float bOut = (float)(rings.GetRingSize(r, RingEdge.Outer, RingAxis.Minor) * scale);

                float aIn = (float)(rings.GetRingSize(r, RingEdge.Inner, RingAxis.Major) * scale);
                float bIn = (float)(rings.GetRingSize(r, RingEdge.Inner, RingAxis.Minor) * scale);

                GraphicsPath gp = new GraphicsPath();
                gp.AddArc(-aOut, -bOut, aOut * 2, bOut * 2, startAngle, 180 + 1e-2f * 2);
                gp.Reverse();
                gp.AddArc(-aIn, -bIn, aIn * 2, bIn * 2, startAngle, 180 + 1e-2f * 2);
                g.FillPath(brushRings[r], gp);
            }
        }