예제 #1
0
 private void GenerateMe()
 {
     foreach (var triangle in _triangles)
     {
         var square = GetTriangleSquare(triangle);
         var matrix = DenseMatrix.OfArray(ME);
         var res    = matrix * (2d * square * _d / 24d);
         Me.Add(res);
     }
 }
예제 #2
0
            public static void Create()
            {
                float headr = HeadR / W;

                Standard.Add(new Orbit(.1f, .2f, 1f / 13));
                Standard.Add(new Orbit(.367f, .2f, 1f / 13));
                Standard.Add(new Orbit(.633f, .2f, 1f / 13));
                Standard.Add(new Orbit(.9f, .2f, 1f / 13));
                Standard.Add(new Orbit(2f / 9, .5f, 1f / 13));
                Standard.Add(new Orbit(.5f, .5f, 1f / 13));
                Standard.Add(new Orbit(7f / 9, .5f, 1f / 13));
                Standard.Add(new Orbit(.1f, .8f, 1f / 13));
                Standard.Add(new Orbit(.367f, .8f, 1f / 13));
                Standard.Add(new Orbit(.633f, .8f, 1f / 13f));
                Standard.Add(new Orbit(.9f, .8f, 1f / 13));

                First.Add(new Orbit(1 / 12f, 1 / 6f, 1 / 21f));
                First.Add(new Orbit(11 / 12f, 1 / 6f, 1 / 21f));
                First.Add(new Orbit(1 / 12f, 5 / 6f, 1 / 21f));
                First.Add(new Orbit(11 / 12f, 5 / 6f, 1 / 21f));
                First.Add(new Orbit(.5f, .5f, 3 / 16f));
                First.Add(new Orbit(1 / 6f, .5f, 3 / 32f));
                First.Add(new Orbit(5 / 6f, .5f, 3 / 32f));
                First.Add(new Orbit(1 / 4f, 1 / 5f, 1 / 28f));
                First.Add(new Orbit(3 / 4f, 1 / 5f, 1 / 28f));
                First.Add(new Orbit(1 / 4f, 4 / 5f, 1 / 28f));
                First.Add(new Orbit(3 / 4f, 4 / 5f, 1 / 28f));

                Dense.Add(new Orbit(1 / 12f, 1 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 12f, 3 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 12f, 5 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 12f, 7 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 6f, 1 / 4f, 1 / 25f));
                Dense.Add(new Orbit(1 / 6f, 1 / 2f, 1 / 25f));
                Dense.Add(new Orbit(1 / 6f, 3 / 4f, 1 / 25f));
                Dense.Add(new Orbit(1 / 4f, 1 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 4f, 3 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 4f, 5 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 4f, 7 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 3f, 1 / 4f, 1 / 25f));
                Dense.Add(new Orbit(1 / 3f, 1 / 2f, 1 / 25f));
                Dense.Add(new Orbit(1 / 3f, 3 / 4f, 1 / 25f));
                Dense.Add(new Orbit(5 / 12f, 1 / 8f, 1 / 25f));
                Dense.Add(new Orbit(5 / 12f, 3 / 8f, 1 / 25f));
                Dense.Add(new Orbit(5 / 12f, 5 / 8f, 1 / 25f));
                Dense.Add(new Orbit(5 / 12f, 7 / 8f, 1 / 25f));
                Dense.Add(new Orbit(1 / 2f, 1 / 4f, 1 / 25f));
                Dense.Add(new Orbit(1 / 2f, 1 / 2f, 1 / 25f));
                Dense.Add(new Orbit(1 / 2f, 3 / 4f, 1 / 25f));
                Dense.Add(new Orbit(7 / 12f, 1 / 8f, 1 / 25f));
                Dense.Add(new Orbit(7 / 12f, 3 / 8f, 1 / 25f));
                Dense.Add(new Orbit(7 / 12f, 5 / 8f, 1 / 25f));
                Dense.Add(new Orbit(7 / 12f, 7 / 8f, 1 / 25f));
                Dense.Add(new Orbit(2 / 3f, 1 / 4f, 1 / 25f));
                Dense.Add(new Orbit(2 / 3f, 1 / 2f, 1 / 25f));
                Dense.Add(new Orbit(2 / 3f, 3 / 4f, 1 / 25f));
                Dense.Add(new Orbit(3 / 4f, 1 / 8f, 1 / 25f));
                Dense.Add(new Orbit(3 / 4f, 3 / 8f, 1 / 25f));
                Dense.Add(new Orbit(3 / 4f, 5 / 8f, 1 / 25f));
                Dense.Add(new Orbit(3 / 4f, 7 / 8f, 1 / 25f));
                Dense.Add(new Orbit(5 / 6f, 1 / 4f, 1 / 25f));
                Dense.Add(new Orbit(5 / 6f, 1 / 2f, 1 / 25f));
                Dense.Add(new Orbit(5 / 6f, 3 / 4f, 1 / 25f));
                Dense.Add(new Orbit(11 / 12f, 1 / 8f, 1 / 25f));
                Dense.Add(new Orbit(11 / 12f, 3 / 8f, 1 / 25f));
                Dense.Add(new Orbit(11 / 12f, 5 / 8f, 1 / 25f));
                Dense.Add(new Orbit(11 / 12f, 7 / 8f, 1 / 25f));

                Simple.Add(new Orbit(1 / 4f, .5f, .2f));
                Simple.Add(new Orbit(3 / 4f, .5f, .2f));
                Simple.Add(new Orbit(.5f, 1 / 6f, .05f));
                Simple.Add(new Orbit(.5f, 5 / 6f, .05f));

                Steps.Add(new Orbit(.12f + headr, .24f + headr * 2, .12f));
                Steps.Add(new Orbit(1 / 3f, .6f, .1f));
                Steps.Add(new Orbit(.5f, 14 / 16f - headr * 2, 1 / 16f));
                Steps.Add(new Orbit(2 / 3f, .6f, .1f));
                Steps.Add(new Orbit(.88f - headr, .24f + headr * 2, .12f));

                Isles.Add(new Orbit(1 / 12f + headr, 3 / 5f, 1 / 12f));
                Isles.Add(new Orbit(3 / 12f, 1 / 6f + headr * 2, 1 / 12f));
                Isles.Add(new Orbit(5 / 12f, 5 / 6f - headr * 2, 1 / 12f));
                Isles.Add(new Orbit(7 / 12f, 1 / 6f + headr * 2, 1 / 12f));
                Isles.Add(new Orbit(9 / 12f, 5 / 6f - headr * 2, 1 / 12f));
                Isles.Add(new Orbit(11 / 12f - headr, 2 / 5f, 1 / 12f));

                Moon.Add(new Orbit(1 / 4f, .3f + headr * 2, .15f));
                Moon.Add(new Orbit(.42f, .87f, 1 / 30f));
                Moon.Add(new Orbit(.3f, .5f, 1 / 30f));
                Moon.Add(new Orbit(.72381f, .18924f, 1 / 32f));
                Moon.Add(new Orbit(.62348f, .54328f, 1 / 18f));
                Moon.Add(new Orbit(.76483f, .43617f, 1 / 32f));
                Moon.Add(new Orbit(.32732f, .32711f, 1 / 26f));
                Moon.Add(new Orbit(.17231f, .79801f, 1 / 24f));
                Moon.Add(new Orbit(.79782f, .79701f, 1 / 20f));
                Moon.Add(new Orbit(.87982f, .33241f, 1 / 22f));
                Moon.Add(new Orbit(.54311f, .12411f, 1 / 28f));
                Moon.Add(new Orbit(.06251f, .56781f, 1 / 30f));
                Moon.Add(new Orbit(.52879f, .78232f, 1 / 34f));

                Ring.Add(new Orbit(3 / 13f, 1 / 9f + headr * 2, 1 / 18f));
                Ring.Add(new Orbit(5 / 13f, 1 / 9f + headr * 2, 1 / 18f));
                Ring.Add(new Orbit(7 / 13f, 1 / 9f + headr * 2, 1 / 18f));
                Ring.Add(new Orbit(9 / 13f, 1 / 9f + headr * 2, 1 / 18f));
                Ring.Add(new Orbit(4 / 13f, 8 / 9f - headr * 2, 1 / 18f));
                Ring.Add(new Orbit(6 / 13f, 8 / 9f - headr * 2, 1 / 18f));
                Ring.Add(new Orbit(8 / 13f, 8 / 9f - headr * 2, 1 / 18f));
                Ring.Add(new Orbit(10 / 13f, 8 / 9f - headr * 2, 1 / 18f));
                Ring.Add(new Orbit(1 / 15f + headr, 1 / 3f, 1 / 15f));
                Ring.Add(new Orbit(14 / 15f - headr, 2 / 3f, 1 / 15f));
                //Ring.Add(new Orbit(1/18f+headr, 1/8f, 1/18f));
                //Ring.Add(new Orbit(17/18f-headr, 7/8f, 1/18f));
                Ring.Add(new Orbit(.1f + headr, .8f - headr * 2, .1f));
                Ring.Add(new Orbit(.9f - headr, .2f + headr * 2, .1f));

                Wave.Add(new Orbit(1 / 6f, 2 / 9f + headr * 2, 1 / 9f));
                Wave.Add(new Orbit(2 / 6f, 7 / 9f - headr * 2, 1 / 9f));
                Wave.Add(new Orbit(3 / 6f, 2 / 9f + headr * 2, 1 / 9f));
                Wave.Add(new Orbit(4 / 6f, 7 / 9f - headr * 2, 1 / 9f));
                Wave.Add(new Orbit(5 / 6f, 2 / 9f + headr * 2, 1 / 9f));

                /*
                 * Me.Add(new Orbit(1/4f, 1/4f, .12f));
                 * Me.Add(new Orbit(1/4f, 3/4f, .12f));
                 * Me.Add(new Orbit(.52f, .155f, .06f));
                 * Me.Add(new Orbit(.67f, .155f, .06f));
                 * Me.Add(new Orbit(.82f, .155f, .06f));
                 * Me.Add(new Orbit(.595f, .5f, .12f));
                 * Me.Add(new Orbit(.52f, .85f, .06f));
                 * Me.Add(new Orbit(.875f, .85f, .05f));
                 */

                Me.Add(new Orbit(1 / 11f + headr, 9 / 11f - 2 * headr, 1 / 11f));
                Me.Add(new Orbit(13 / 44f + headr / 2, 29 / 44f - headr, 1 / 11f));
                Me.Add(new Orbit(.5f, .5f, 1 / 11f));
                Me.Add(new Orbit(31 / 44f - headr / 2, 15 / 44f + headr, 1 / 11f));
                Me.Add(new Orbit(10 / 11f - headr, 2 / 11f + 2 * headr, 1 / 11f));
            }