Разработка приложений для Windows Phone 7

Трансформация и анимация в Silverlight с помощью XAML

Показывать лекцию целиком

Дополнительные материалы к занятию можно скачать здесь.

WPF предоставляет дополнительные графические и анимационные возможности, которые были ранее доступны только из специализированных библиотек - в частности, Интерфейс графических устройств (GDI) Microsoft Windows и Microsoft Windows GDI+. WPF предлагает встроенную поддержку мультимедиа, векторной графики, анимации и композиции содержимого, упрощая разработчикам создание оригинального пользовательского интерфейса и содержимого. Используя Microsoft Visual Studio .NET или даже текстовый редактор, такой как Блокнот (Майкрософт), можно создать векторную графику или сложную анимацию и интегрировать мультимедиа в приложения.

Новые графические и мультимедийные возможности в WPF

WPF знакомит разработчиков Windows с новыми графическими функциями, которые имеют следующие преимущества:

  • Разрешение и аппаратно-независимая графика. Графическая система WPF использует аппаратно-независимые модули для поддержки разрешения и независимости от устройства. Каждый независимая от устройства точка автоматически масштабируется в соответствии с параметрами системы (в точках на дюйм).
  • Повышенная точность. Система координат WPF использует doubles вместо floats. WPF также поддерживает широкую цветовую гамму (scRGB) и предоставляет встроенную поддержку для управления входными данными из другого цветового пространства.
  • Дополнительная поддержка графики и анимации. WPF упрощает программирование графики с помощью управления графом сцены; больше не нужно беспокоиться об обработке сцены, циклах отрисовки и билинейной интерполяции. WPF предоставляет поддержку проверки нажатия, встроенную систему анимации и полную поддержку альфа-компоновки.
  • Аппаратное ускорение. Графическая система WPF разработана для использования преимуществ графического оборудования и минимизировать загрузку процессора.
  • Упражнение 12.1. Рисуем треугольник

    Создаем проект practice_5_1.

    В окне MainPage.xaml наберите следующий код:

    <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid x:Name="LayoutRoot">
            <Viewport3D Height="300" Width="300" >
                <Viewport3D.Camera>
                    <PerspectiveCamera Position="4 0.5 0.5" LookDirection="-3.5 0 0" />
                </Viewport3D.Camera>
                <ModelVisual3D>
                    <ModelVisual3D.Content>
                        <DirectionalLight Direction="-3.5 0 0" />
                    </ModelVisual3D.Content>
                </ModelVisual3D>
                <ModelVisual3D>
                    <ModelVisual3D.Content>
                        <GeometryModel3D>
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D
                                    Positions="1 0 0  1 1 0  1 0 1 "
                                    TriangleIndices="0 1 2"/>
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial>
                                    <DiffuseMaterial.Brush>
                                        <SolidColorBrush Color="BlueViolet" />
                                    </DiffuseMaterial.Brush>
                                </DiffuseMaterial>
                            </GeometryModel3D.Material>
                        </GeometryModel3D>
                    </ModelVisual3D.Content>
                </ModelVisual3D>
            </Viewport3D>
        </Grid>
    </Window>
        

    Перейдите в окно MainPage.xaml.cs и документрируем строчку InitializeComponent();:

    Получаем следующий результат:

    Упражнение 12.2. Рисуем треугольник в коде (Чарльз Петзольд)

    Для начала нужно создать пустой проект C#:

    В свойствах проекта в пункте "Тип выходных данных" выберите "Приложение Windows".

    Добавьте к проекту элемент "Файл с текстом программы".

    К ссылкам проекта добавьте PresentationCore, PresentationFramework, System, System.Xaml и WindowsBase:

    В окно кода добавьте следующую программу:

    // Simple3DSceneInCode.cs (c) 2007 by Charles Petzold
    //----------------------------------------------------
    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Controls.Primitives;
    using System.Windows.Media;
    using System.Windows.Media.Media3D;
    
    namespace Petzold.Simple3DSceneInCode
    {
        public class Simple3DSceneInCode : Window
        {
            PerspectiveCamera cam;
    
            [STAThread]
            public static void Main()
            {
                Application app = new Application();
                app.Run(new Simple3DSceneInCode());
            }
    
            public Simple3DSceneInCode()
            {
                Title = "Simple 3D Scene in Code";
    
                // Создаем контент док-панели окна
                DockPanel dock = new DockPanel();
                Content = dock;
    
                // Создаем скролл-бар для движения камеры
                ScrollBar scroll = new ScrollBar();
                scroll.Orientation = Orientation.Horizontal;
                scroll.Value = -2;
                scroll.Minimum = -2;
                scroll.Maximum = 2;
                scroll.ValueChanged += ScrollBarOnValueChanged;
                dock.Children.Add(scroll);
                DockPanel.SetDock(scroll, Dock.Bottom);
    
                // Создаем Viewport3D для трехмерной сцена
                Viewport3D viewport = new Viewport3D();
                dock.Children.Add(viewport);
    
                // Задаем MeshGeometry3D.
                MeshGeometry3D mesh = new MeshGeometry3D();
                mesh.Positions.Add(new Point3D(0, 0, 0));
                mesh.Positions.Add(new Point3D(0, 1, -1));
                mesh.Positions.Add(new Point3D(0, 0, -2));
                mesh.TriangleIndices = new Int32Collection(new int[] { 0, 1, 2 });
    
                // Задаем GeometryModel3D.
                GeometryModel3D geomod = new GeometryModel3D();
                geomod.Geometry = mesh;
                geomod.Material = new DiffuseMaterial(Brushes.Blue);
                geomod.BackMaterial = new DiffuseMaterial(Brushes.Red);
                // Создаем ModelVisual3D для GeometryModel3D.
                ModelVisual3D modvis = new ModelVisual3D();
                modvis.Content = geomod;
                viewport.Children.Add(modvis);
    
                // Создаем другую ModelVisual3D для света
                modvis = new ModelVisual3D();
                modvis.Content = new AmbientLight(Colors.White);
                viewport.Children.Add(modvis);
    
                // Создаем камеру
                cam = new PerspectiveCamera(new Point3D(-2, 0, 5),
                                new Vector3D(0, 0, -1), new Vector3D(0, 1, 0), 45);
                viewport.Camera = cam;
            }
            void ScrollBarOnValueChanged(object sender,
                                RoutedPropertyChangedEventArgs<double> args)
            {
                cam.Position = new Point3D(args.NewValue, 0, 5);
            }
        }
    }
        

    Получаем следующий результат:

    Упражнение 12.3. Рисование двух треугольников

    Создаем проект practice_5_3.

    В окне MainPage.xaml наберите следующий код:

    <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          WindowTitle="Два треугольника образуют квадрат"
          Title="Два треугольника">
        <Viewport3D>
            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <Model3DGroup>
                        <GeometryModel3D>
                            <GeometryModel3D.Geometry>
    
                                <MeshGeometry3D
                                     Positions="0 1  0, 0 0  0, 1 1  0, 1 0  0"
                                     TriangleIndices="0  1  2,  1  3  2" />
                            </GeometryModel3D.Geometry>
    
                            <GeometryModel3D.Material>
                                <DiffuseMaterial Brush="Blue" />
                            </GeometryModel3D.Material>
    
                            <GeometryModel3D.BackMaterial>
                                <DiffuseMaterial Brush="Red" />
                            </GeometryModel3D.BackMaterial>
    
                        </GeometryModel3D>
    
                        <!-- Источники света -->
                        <AmbientLight Color="#404040" />
                        <DirectionalLight Color="#C0C0C0" Direction="0 0 -3.5" />
    
                    </Model3DGroup>
                </ModelVisual3D.Content>
            </ModelVisual3D>
    
            <!-- Камера -->
            <Viewport3D.Camera>
                <PerspectiveCamera Position="0.5 0.5 4"
                                   LookDirection="0 0 -3.5"
                                   UpDirection="1 0 0"
                                   FieldOfView="60" />
            </Viewport3D.Camera>
        </Viewport3D>
    </Page>
        

    Перейдите в окно MainPage.xaml.cs и документрируем строчку InitializeComponent();:

    Получаем следующий результат:

    Упражнение 12.4 Анимация 24-х спутников ГЛОНАСС

    Землю моделировали, используя алгоритм V. Miszalok (http://www.miszalok.de/C_00/Index_all_Courses.htm). Спутники изображены в виде додекаэдров (Чарльз Петзольд)

    Создаем проект practice_5_4.

    Файл earth.bmp нужно поместить в папку c:\temp

    В окне MainWindow.xaml наберите следующий код:

    <Window x:Class="sphere1.MainWindow" x:Name="window"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Космический сегмент ГЛОНАСС" Width="800" Height="800">
        <Window.Resources>
            <BitmapImage x:Key="earthImage" UriSource="C:\temp\earth.bmp"/>
            <ImageBrush x:Key="earthBrush" ImageSource="{ StaticResource earthImage }"/>
            <SolidColorBrush x:Key="solidColorBrush" Color="Red"/>
            <DiffuseMaterial x:Key="backMaterial" Brush="{ StaticResource solidColorBrush }"/>
            <MeshGeometry3D x:Key="sat" 
                            Positions="1.17082039324994,-0.723606797749979,0 1,-1,-1 
                            1.61803398874989,0,-0.618033988749895 1.17082039324994,-0.723606797749979,0 
                            1.61803398874989,0,-0.618033988749895 1.61803398874989,0,0.618033988749895 1.17082039324994,
                            -0.723606797749979,0 1.61803398874989,0,0.618033988749895 1,-1,1 1.17082039324994,-0.723606797749979,0 1,-1,1 
                            0.618033988749895,-1.61803398874989,0 1.17082039324994,-0.723606797749979,0 0.618033988749895,
                            -1.61803398874989,0 1,-1,-1 -1.17082039324994,-0.723606797749979,0 -1,-1,1 -1.61803398874989,0,0.618033988749895 
                            -1.17082039324994,-0.723606797749979,0 -1.61803398874989,0,0.618033988749895 -1.61803398874989,0,-0.618033988749895 
                            -1.17082039324994,-0.723606797749979,0 -1.61803398874989,0,-0.618033988749895 -1,-1,-1 -1.17082039324994,
                            -0.723606797749979,0 -1,-1,-1 -0.618033988749895,-1.61803398874989,0 -1.17082039324994,-0.723606797749979,0 
                            -0.618033988749895,-1.61803398874989,0 -1,-1,1 -1.17082039324994,0.723606797749979,0 -1,1,-1 -1.61803398874989,0,
                            -0.618033988749895 -1.17082039324994,0.723606797749979,0 -1.61803398874989,0,-0.618033988749895 -1.61803398874989,0,
                            0.618033988749895 -1.17082039324994,0.723606797749979,0 -1.61803398874989,0,0.618033988749895 -1,1,1 -1.17082039324994,
                            0.723606797749979,0 -1,1,1 -0.618033988749895,1.61803398874989,0 -1.17082039324994,0.723606797749979,0 
                            -0.618033988749895,1.61803398874989,0 -1,1,-1 1.17082039324994,0.723606797749979,0 1,1,1 1.61803398874989,0,
                            0.618033988749895 1.17082039324994,0.723606797749979,0 1.61803398874989,0,0.618033988749895 1.61803398874989,0,
                            -0.618033988749895 1.17082039324994,0.723606797749979,0 1.61803398874989,0,-0.618033988749895 1,1,-1 1.17082039324994,
                            0.723606797749979,0 1,1,-1 0.618033988749895,1.61803398874989,0 1.17082039324994,0.723606797749979,0 0.618033988749895,
                            1.61803398874989,0 1,1,1 -0.723606797749979,0,-1.17082039324994 -1,1,-1 0,0.618033988749895,-1.61803398874989 
                            -0.723606797749979,0,-1.17082039324994 0,0.618033988749895,-1.61803398874989 0,-0.618033988749895,-1.61803398874989 
                            -0.723606797749979,0,-1.17082039324994 0,-0.618033988749895,-1.61803398874989 -1,-1,-1 -0.723606797749979,0,
                            -1.17082039324994 -1,-1,-1 -1.61803398874989,0,-0.618033988749895 -0.723606797749979,0,-1.17082039324994 
                            -1.61803398874989,0,-0.618033988749895 -1,1,-1 -0.723606797749979,0,1.17082039324994 -1,-1,1 0,-0.618033988749895,
                            1.61803398874989 -0.723606797749979,0,1.17082039324994 0,-0.618033988749895,1.61803398874989 0,0.618033988749895,
                            1.61803398874989 -0.723606797749979,0,1.17082039324994 0,0.618033988749895,1.61803398874989 -1,1,1 
                            -0.723606797749979,0,1.17082039324994 -1,1,1 -1.61803398874989,0,0.618033988749895 -0.723606797749979,0,
                            1.17082039324994 -1.61803398874989,0,0.618033988749895 -1,-1,1 0.723606797749979,0,-1.17082039324994 1,-1,-1 0,
                            -0.618033988749895,-1.61803398874989 0.723606797749979,0,-1.17082039324994 0,-0.618033988749895,-1.61803398874989 
                            0,0.618033988749895,-1.61803398874989 0.723606797749979,0,-1.17082039324994 0,0.618033988749895,-1.61803398874989 1,1,-1 
                            0.723606797749979,0,-1.17082039324994 1,1,-1 1.61803398874989,0,-0.618033988749895 0.723606797749979,0,-1.17082039324994 
                            1.61803398874989,0,-0.618033988749895 1,-1,-1 0.723606797749979,0,1.17082039324994 1,1,1 0,0.618033988749895,
                            1.61803398874989 0.723606797749979,0,1.17082039324994 0,0.618033988749895,1.61803398874989 0,-0.618033988749895,
                            1.61803398874989 0.723606797749979,0,1.17082039324994 0,-0.618033988749895,1.61803398874989 1,-1,1 
                            0.723606797749979,0,1.17082039324994 1,-1,1 1.61803398874989,0,0.618033988749895 0.723606797749979,0,1.17082039324994 
                            1.61803398874989,0,0.618033988749895 1,1,1 0,-1.17082039324994,-0.723606797749979 1,-1,-1 0.618033988749895,
                            -1.61803398874989,0 0,-1.17082039324994,-0.723606797749979 0.618033988749895,-1.61803398874989,0 -0.618033988749895,
                            -1.61803398874989,0 0,-1.17082039324994,-0.723606797749979 -0.618033988749895,-1.61803398874989,0 -1,-1,-1 0,
                            -1.17082039324994,-0.723606797749979 -1,-1,-1 0,-0.618033988749895,-1.61803398874989 0,-1.17082039324994,
                            -0.723606797749979 0,-0.618033988749895,-1.61803398874989 1,-1,-1 0,1.17082039324994,-0.723606797749979 -1,1,-1 
                            -0.618033988749895,1.61803398874989,0 0,1.17082039324994,-0.723606797749979 -0.618033988749895,1.61803398874989,0 
                            0.618033988749895,1.61803398874989,0 0,1.17082039324994,-0.723606797749979 0.618033988749895,1.61803398874989,0 1,1,
                            -1 0,1.17082039324994,-0.723606797749979 1,1,-1 0,0.618033988749895,-1.61803398874989 0,1.17082039324994,
                            -0.723606797749979 0,0.618033988749895,-1.61803398874989 -1,1,-1 0,-1.17082039324994,0.723606797749979 -1,-1,1 
                            -0.618033988749895,-1.61803398874989,0 0,-1.17082039324994,0.723606797749979 -0.618033988749895,-1.61803398874989,0 
                            0.618033988749895,-1.61803398874989,0 0,-1.17082039324994,0.723606797749979 0.618033988749895,-1.61803398874989,0 1,-1,1 
                            0,-1.17082039324994,0.723606797749979 1,-1,1 0,-0.618033988749895,1.61803398874989 0,-1.17082039324994,0.723606797749979 
                            0,-0.618033988749895,1.61803398874989 -1,-1,1 0,1.17082039324994,0.723606797749979 1,1,1 0.618033988749895,
                            1.61803398874989,0 0,1.17082039324994,0.723606797749979 0.618033988749895,1.61803398874989,0 -0.618033988749895,
                            1.61803398874989,0 0,1.17082039324994,0.723606797749979 -0.618033988749895,1.61803398874989,0 -1,1,1 0,1.17082039324994,
                            0.723606797749979 -1,1,1 0,0.618033988749895,1.61803398874989 0,1.17082039324994,0.723606797749979 0,0.618033988749895,
                            1.61803398874989 1,1,1"
                            Normals="-0.894427190999916,0.552786404500042,8.32667268468867E-17 -0.894427190999916,0.552786404500042,
                            8.32667268468867E-17 -0.894427190999916,0.552786404500042,8.32667268468867E-17 -0.894427190999916,0.552786404500042,
                            8.32667268468867E-17 -0.894427190999916,0.552786404500042,8.32667268468867E-17 -0.894427190999916,0.552786404500042,
                            8.32667268468867E-17 -0.894427190999916,0.552786404500042,8.32667268468867E-17 -0.894427190999916,0.552786404500042,
                            8.32667268468867E-17 -0.894427190999916,0.552786404500042,8.32667268468867E-17 -0.894427190999916,0.552786404500042,
                            8.32667268468867E-17 -0.894427190999916,0.552786404500042,8.32667268468867E-17 -0.894427190999916,0.552786404500042,
                            8.32667268468867E-17 -0.894427190999916,0.552786404500042,8.32667268468867E-17 -0.894427190999916,0.552786404500042,
                            8.32667268468867E-17 -0.894427190999916,0.552786404500042,8.32667268468867E-17 0.894427190999916,0.552786404500042,
                            -8.32667268468867E-17 0.894427190999916,0.552786404500042,-8.32667268468867E-17 0.894427190999916,0.552786404500042,
                            -8.32667268468867E-17 0.894427190999916,0.552786404500042,-8.32667268468867E-17 0.894427190999916,0.552786404500042,
                            -8.32667268468867E-17 0.894427190999916,0.552786404500042,-8.32667268468867E-17 0.894427190999916,0.552786404500042,
                            -8.32667268468867E-17 0.894427190999916,0.552786404500042,-8.32667268468867E-17 0.894427190999916,0.552786404500042,
                            -8.32667268468867E-17 0.894427190999916,0.552786404500042,-8.32667268468867E-17 0.894427190999916,0.552786404500042,
                            -8.32667268468867E-17 0.894427190999916,0.552786404500042,-8.32667268468867E-17 0.894427190999916,0.552786404500042,
                            -8.32667268468867E-17 0.894427190999916,0.552786404500042,-8.32667268468867E-17 0.894427190999916,0.552786404500042,
                            -8.32667268468867E-17 0.894427190999916,-0.552786404500042,8.32667268468867E-17 0.894427190999916,-0.552786404500042,
                            8.32667268468867E-17 0.894427190999916,-0.552786404500042,8.32667268468867E-17 0.894427190999916,-0.552786404500042,
                            8.32667268468867E-17 0.894427190999916,-0.552786404500042,8.32667268468867E-17 0.894427190999916,-0.552786404500042,
                            8.32667268468867E-17 0.894427190999916,-0.552786404500042,8.32667268468867E-17 0.894427190999916,-0.552786404500042,
                            8.32667268468867E-17 0.894427190999916,-0.552786404500042,8.32667268468867E-17 0.894427190999916,-0.552786404500042,
                            8.32667268468867E-17 0.894427190999916,-0.552786404500042,8.32667268468867E-17 0.894427190999916,-0.552786404500042,
                            8.32667268468867E-17 0.894427190999916,-0.552786404500042,8.32667268468867E-17 0.894427190999916,-0.552786404500042,
                            8.32667268468867E-17 0.894427190999916,-0.552786404500042,8.32667268468867E-17 -0.894427190999916,-0.552786404500042,
                            -8.32667268468867E-17 -0.894427190999916,-0.552786404500042,-8.32667268468867E-17 -0.894427190999916,-0.552786404500042,
                            -8.32667268468867E-17 -0.894427190999916,-0.552786404500042,-8.32667268468867E-17 -0.894427190999916,-0.552786404500042,
                            -8.32667268468867E-17 -0.894427190999916,-0.552786404500042,-8.32667268468867E-17 -0.894427190999916,-0.552786404500042,
                            -8.32667268468867E-17 -0.894427190999916,-0.552786404500042,-8.32667268468867E-17 -0.894427190999916,-0.552786404500042,
                            -8.32667268468867E-17 -0.894427190999916,-0.552786404500042,-8.32667268468867E-17 -0.894427190999916,-0.552786404500042,
                            -8.32667268468867E-17 -0.894427190999916,-0.552786404500042,-8.32667268468867E-17 -0.894427190999916,-0.552786404500042,
                            -8.32667268468867E-17 -0.894427190999916,-0.552786404500042,-8.32667268468867E-17 -0.894427190999916,-0.552786404500042,
                            -8.32667268468867E-17 0.552786404500042,-8.32667268468867E-17,0.894427190999916 0.552786404500042,-8.32667268468867E-17,
                            0.894427190999916 0.552786404500042,-8.32667268468867E-17,0.894427190999916 0.552786404500042,-8.32667268468867E-17,
                            0.894427190999916 0.552786404500042,-8.32667268468867E-17,0.894427190999916 0.552786404500042,-8.32667268468867E-17,
                            0.894427190999916 0.552786404500042,-8.32667268468867E-17,0.894427190999916 0.552786404500042,-8.32667268468867E-17,
                            0.894427190999916 0.552786404500042,-8.32667268468867E-17,0.894427190999916 0.552786404500042,-8.32667268468867E-17,
                            0.894427190999916 0.552786404500042,-8.32667268468867E-17,0.894427190999916 0.552786404500042,-8.32667268468867E-17,
                            0.894427190999916 0.552786404500042,-8.32667268468867E-17,0.894427190999916 0.552786404500042,-8.32667268468867E-17,
                            0.894427190999916 0.552786404500042,-8.32667268468867E-17,0.894427190999916 0.552786404500042,8.32667268468867E-17,
                            -0.894427190999916 0.552786404500042,8.32667268468867E-17,-0.894427190999916 0.552786404500042,8.32667268468867E-17,
                            -0.894427190999916 0.552786404500042,8.32667268468867E-17,-0.894427190999916 0.552786404500042,8.32667268468867E-17,
                            -0.894427190999916 0.552786404500042,8.32667268468867E-17,-0.894427190999916 0.552786404500042,8.32667268468867E-17,
                            -0.894427190999916 0.552786404500042,8.32667268468867E-17,-0.894427190999916 0.552786404500042,8.32667268468867E-17,
                            -0.894427190999916 0.552786404500042,8.32667268468867E-17,-0.894427190999916 0.552786404500042,8.32667268468867E-17,
                            -0.894427190999916 0.552786404500042,8.32667268468867E-17,-0.894427190999916 0.552786404500042,8.32667268468867E-17,
                            -0.894427190999916 0.552786404500042,8.32667268468867E-17,-0.894427190999916 0.552786404500042,8.32667268468867E-17,
                            -0.894427190999916 -0.552786404500042,8.32667268468867E-17,0.894427190999916 -0.552786404500042,8.32667268468867E-17,
                            0.894427190999916 -0.552786404500042,8.32667268468867E-17,0.894427190999916 -0.552786404500042,8.32667268468867E-17,
                            0.894427190999916 -0.552786404500042,8.32667268468867E-17,0.894427190999916 -0.552786404500042,8.32667268468867E-17,
                            0.894427190999916 -0.552786404500042,8.32667268468867E-17,0.894427190999916 -0.552786404500042,8.32667268468867E-17,
                            0.894427190999916 -0.552786404500042,8.32667268468867E-17,0.894427190999916 -0.552786404500042,8.32667268468867E-17,
                            0.894427190999916 -0.552786404500042,8.32667268468867E-17,0.894427190999916 -0.552786404500042,8.32667268468867E-17,
                            0.894427190999916 -0.552786404500042,8.32667268468867E-17,0.894427190999916 -0.552786404500042,8.32667268468867E-17,
                            0.894427190999916 -0.552786404500042,8.32667268468867E-17,0.894427190999916 -0.552786404500042,-8.32667268468867E-17,
                            -0.894427190999916 -0.552786404500042,-8.32667268468867E-17,-0.894427190999916 -0.552786404500042,-8.32667268468867E-17,
                            -0.894427190999916 -0.552786404500042,-8.32667268468867E-17,-0.894427190999916 -0.552786404500042,-8.32667268468867E-17,
                            -0.894427190999916 -0.552786404500042,-8.32667268468867E-17,-0.894427190999916 -0.552786404500042,-8.32667268468867E-17,
                            -0.894427190999916 -0.552786404500042,-8.32667268468867E-17,-0.894427190999916 -0.552786404500042,-8.32667268468867E-17,
                            -0.894427190999916 -0.552786404500042,-8.32667268468867E-17,-0.894427190999916 -0.552786404500042,-8.32667268468867E-17,
                            -0.894427190999916 -0.552786404500042,-8.32667268468867E-17,-0.894427190999916 -0.552786404500042,-8.32667268468867E-17,
                            -0.894427190999916 -0.552786404500042,-8.32667268468867E-17,-0.894427190999916 -0.552786404500042,-8.32667268468867E-17,
                            -0.894427190999916 -8.32667268468867E-17,0.894427190999916,0.552786404500042 -8.32667268468867E-17,0.894427190999916,
                            0.552786404500042 -8.32667268468867E-17,0.894427190999916,0.552786404500042 -8.32667268468867E-17,0.894427190999916,
                            0.552786404500042 -8.32667268468867E-17,0.894427190999916,0.552786404500042 -8.32667268468867E-17,0.894427190999916,
                            0.552786404500042 -8.32667268468867E-17,0.894427190999916,0.552786404500042 -8.32667268468867E-17,0.894427190999916,
                            0.552786404500042 -8.32667268468867E-17,0.894427190999916,0.552786404500042 -8.32667268468867E-17,0.894427190999916,
                            0.552786404500042 -8.32667268468867E-17,0.894427190999916,0.552786404500042 -8.32667268468867E-17,0.894427190999916,
                            0.552786404500042 -8.32667268468867E-17,0.894427190999916,0.552786404500042 -8.32667268468867E-17,0.894427190999916,
                            0.552786404500042 -8.32667268468867E-17,0.894427190999916,0.552786404500042 8.32667268468867E-17,-0.894427190999916,
                            0.552786404500042 8.32667268468867E-17,-0.894427190999916,0.552786404500042 8.32667268468867E-17,-0.894427190999916,
                            0.552786404500042 8.32667268468867E-17,-0.894427190999916,0.552786404500042 8.32667268468867E-17,-0.894427190999916,
                            0.552786404500042 8.32667268468867E-17,-0.894427190999916,0.552786404500042 8.32667268468867E-17,-0.894427190999916,
                            0.552786404500042 8.32667268468867E-17,-0.894427190999916,0.552786404500042 8.32667268468867E-17,-0.894427190999916,
                            0.552786404500042 8.32667268468867E-17,-0.894427190999916,0.552786404500042 8.32667268468867E-17,-0.894427190999916,
                            0.552786404500042 8.32667268468867E-17,-0.894427190999916,0.552786404500042 8.32667268468867E-17,-0.894427190999916,
                            0.552786404500042 8.32667268468867E-17,-0.894427190999916,0.552786404500042 8.32667268468867E-17,-0.894427190999916,
                            0.552786404500042 8.32667268468867E-17,0.894427190999916,-0.552786404500042 8.32667268468867E-17,0.894427190999916,
                            -0.552786404500042 8.32667268468867E-17,0.894427190999916,-0.552786404500042 8.32667268468867E-17,0.894427190999916,
                            -0.552786404500042 8.32667268468867E-17,0.894427190999916,-0.552786404500042 8.32667268468867E-17,0.894427190999916,
                            -0.552786404500042 8.32667268468867E-17,0.894427190999916,-0.552786404500042 8.32667268468867E-17,0.894427190999916,
                            -0.552786404500042 8.32667268468867E-17,0.894427190999916,-0.552786404500042 8.32667268468867E-17,0.894427190999916,
                            -0.552786404500042 8.32667268468867E-17,0.894427190999916,-0.552786404500042 8.32667268468867E-17,0.894427190999916,
                            -0.552786404500042 8.32667268468867E-17,0.894427190999916,-0.552786404500042 8.32667268468867E-17,0.894427190999916,
                            -0.552786404500042 8.32667268468867E-17,0.894427190999916,-0.552786404500042 -8.32667268468867E-17,-0.894427190999916,
                            -0.552786404500042 -8.32667268468867E-17,-0.894427190999916,-0.552786404500042 -8.32667268468867E-17,-0.894427190999916,
                            -0.552786404500042 -8.32667268468867E-17,-0.894427190999916,-0.552786404500042 -8.32667268468867E-17,-0.894427190999916,
                            -0.552786404500042 -8.32667268468867E-17,-0.894427190999916,-0.552786404500042 -8.32667268468867E-17,-0.894427190999916,
                            -0.552786404500042 -8.32667268468867E-17,-0.894427190999916,-0.552786404500042 -8.32667268468867E-17,-0.894427190999916,
                            -0.552786404500042 -8.32667268468867E-17,-0.894427190999916,-0.552786404500042 -8.32667268468867E-17,-0.894427190999916,
                            -0.552786404500042 -8.32667268468867E-17,-0.894427190999916,-0.552786404500042 -8.32667268468867E-17,-0.894427190999916,
                            -0.552786404500042 -8.32667268468867E-17,-0.894427190999916,-0.552786404500042 -8.32667268468867E-17,-0.894427190999916,
                            -0.552786404500042"
                            TextureCoordinates="0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 
                            0,0.4 0.5,0 0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0 
                            0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0 0.5,0.5 0.5,0 
                            1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0 0.5,0.5 0.5,0 1,0.4 0.5,0.5 
                            1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0 0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 
                            0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0 0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 
                            0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0 0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 
                            0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0 0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 
                            0.5,0.5 0,0.4 0.5,0 0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 
                            0.5,0 0.5,0.5 0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0 0.5,0.5 
                            0.5,0 1,0.4 0.5,0.5 1,0.4 0.85,1 0.5,0.5 0.85,1 0.15,1 0.5,0.5 0.15,1 0,0.4 0.5,0.5 0,0.4 0.5,0"
                            TriangleIndices="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 
                            36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 
                            76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 
                            112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 
                            142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 
                            172 173 174 175 176 177 178 179" />
    
        </Window.Resources>
        <StackPanel >
    
            <!--Viewport3D is a drawing canvas which resizes its Content automatically-->
            <Viewport3D x:Name="viewport">
                <Viewport3D.Camera>
                    <PerspectiveCamera Position="-1 2 10" LookDirection="1 -2 -10" UpDirection="0 1 0" FieldOfView="30" />
                </Viewport3D.Camera>
                <!--Any 3D-content must be packed in a ModelVisual3D-object-->
                <ModelVisual3D>
                    <ModelVisual3D.Content>
                        <!--Only one Content is allowed. Thus we use a Model3DGroup as envelope for our two lights 
      and all further GeometryModel3Ds.-->
                        <Model3DGroup x:Name="model3DGroup">
                            <AmbientLight Color="#444444"/>
                            <DirectionalLight x:Name="directionalLight" Color="#ffffff" Direction="-1 -1 -1" />
                            <!--A lot of GeometryModel3Ds will be inserted here.-->
    
    
                            <!--Первая орбита -->
                            <!-- Первый спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Cyan" />
                                </GeometryModel3D.Material>
    
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
    
    
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate1"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
                            <!-- 2-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Cyan" />
                                </GeometryModel3D.Material>
    
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
    
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="45" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
    
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate2"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
                            <!-- 3-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Cyan" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="90" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate3"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 4-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Cyan" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="135" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate4"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 5-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Cyan" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="180" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate5"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 6-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Cyan" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="225" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate6"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 7-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Cyan" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="270" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate7"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
    
                            <!-- 8-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Cyan" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="315" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate8"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!--Вторая орбита -->
                            <!--Первый спутник -->
                            <!-- 1-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Brown" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="15" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate9"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 2-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Brown" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="60" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate10"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 3-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Brown" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="105" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate11"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
                            <!-- 4-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Brown" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="150" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate12"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 5-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Brown" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="195" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate13"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
                            <!-- 6-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Brown" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate14"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 7-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Brown" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="285" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate15"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 8-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Brown" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="330" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate16"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
    
                                        <!--Сдвиг по долготе 120 градусов относительно первой плоскости-->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
    
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
    
    
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
    
                            <!--Третья орбита -->
                            <!--Первый спутник -->
                            <!-- 1-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="30" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate17"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 2-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="75" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate18"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 3-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="120" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate19"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
                            <!-- 4-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="165" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate20"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 5-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="210" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate21"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
                            <!-- 6-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="255" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate22"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 7-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="300" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate23"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
    
                            <!-- 8-й спутник -->
                            <GeometryModel3D Geometry="{StaticResource sat}">
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green" />
                                </GeometryModel3D.Material>
                                <GeometryModel3D.BackMaterial>
                                    <DiffuseMaterial Brush="Red" />
                                </GeometryModel3D.BackMaterial>
                                <GeometryModel3D.Transform>
                                    <Transform3DGroup>
                                        <TranslateTransform3D OffsetX="45" OffsetY="0" OffsetZ="0" />
                                        <ScaleTransform3D ScaleX="0.05" ScaleY="0.05" ScaleZ="0.05"/>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" Angle="345" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 0 1" x:Name="rotate24"  />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="0 1 0" Angle="240" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <!--Наклонение орбиты 64,8 градуса  -->
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D Axis="1 0 0" Angle="-64.8" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                    </Transform3DGroup>
                                </GeometryModel3D.Transform>
                            </GeometryModel3D>
    
                        </Model3DGroup>
                    </ModelVisual3D.Content>
                </ModelVisual3D>
            </Viewport3D>
    
        </StackPanel>
        <!--end of the uppermost StackPanel which contains everything-->
        <Window.Triggers>
            <EventTrigger RoutedEvent="Window.Loaded">
                <BeginStoryboard>
                    <Storyboard TargetProperty="Angle">
                        <!--Первая плоскость-->
                        <DoubleAnimation Storyboard.TargetName="rotate1" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate2" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate3" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate4" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate5" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate6" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate7" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate8" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
    
                        <!--Вторая плоскость-->
    
                        <DoubleAnimation Storyboard.TargetName="rotate9" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate10" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate11" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate12" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate13" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate14" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate15" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate16" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
    
                        <!--Третья плоскость-->
    
                        <DoubleAnimation Storyboard.TargetName="rotate17" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate18" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate19" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate20" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate21" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate22" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate23" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                        <DoubleAnimation Storyboard.TargetName="rotate24" From="0" To="360" Duration="0:2:00" RepeatBehavior="Forever" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Window.Triggers>
    </Window>
        

    Переходим в окно ):

    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Media.Media3D;
    
    
    namespace sphere1
    {
        public partial class MainWindow : Window
        {
            private const int maxLongitudes = 100; //maximum
            private const int maxLatitudes = 100; //maximum
            private Point3D[,] position = new Point3D[maxLongitudes + 1, maxLatitudes];
            private Point[,] texture = new Point[maxLongitudes + 1, maxLatitudes];
            private DiffuseMaterial[] frontMaterial = new DiffuseMaterial[maxLatitudes - 1];
            private int longitudes; //actual <= maximum
            private int latitudes; //actual <= maximum
            private int emptySlices = 0; //cuts slices out of the apple
            private int IndexOfFirstGeometryModel3DInModel3DGroup; //= no of lights = 2
            private Matrix3D matrix = Matrix3D.Identity;
            private MatrixTransform3D matrixTransform3D;
            private Quaternion qX = new Quaternion(new Vector3D(1, 0, 0), 1); //rotations around X-axis
            private Quaternion qY = new Quaternion(new Vector3D(0, 1, 0), 1); //rotations around Y-axis
            private Quaternion qZ = new Quaternion(new Vector3D(0, 0, 1), 1); //rotations around Z-axis
            private System.Windows.Threading.DispatcherTimer timer =
            new System.Windows.Threading.DispatcherTimer();
    
    
            public MainWindow() //constructor
            {
                InitializeComponent();
                IndexOfFirstGeometryModel3DInModel3DGroup = model3DGroup.Children.Count;
                longitudes = 30;
                latitudes = 30;
    
                StartAnimation();
    
                GenerateImageMaterials();
                GenerateSphere();
                GenerateAllCylinders();
                timer.Interval = TimeSpan.FromMilliseconds(50);
                timer.Tick += TimerOnTick;
            }
    
            private void StartAnimation()
            {
                timer.Stop();
                matrix = Matrix3D.Identity;
                timer.Start();
            }
    
            private void TimerOnTick(Object sender, EventArgs args)
            {
                matrix.Rotate(qY);
                matrixTransform3D = new MatrixTransform3D(matrix);
                for (int i = IndexOfFirstGeometryModel3DInModel3DGroup;
                i < model3DGroup.Children.Count; i++)
                    ((GeometryModel3D)model3DGroup.Children[i]).Transform = matrixTransform3D;
    
    
            }
    
    
    
            protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
            {
                try { viewport.Width = viewport.Height = window.ActualWidth; }
                catch { }
            }
    
            private void GenerateImageMaterials()
            {
                ImageBrush imageBrush;
                double flatThickness = 1.0 / (latitudes - 1);
                double minus = (double)(longitudes - emptySlices);
    
                for (int lat = 0; lat < latitudes - 1; lat++)
                {
                    imageBrush = new ImageBrush((BitmapImage)Resources["earthImage"]);
                    imageBrush.Viewbox = new Rect(0, lat * flatThickness, minus / longitudes,
                    flatThickness);
                    frontMaterial[lat] = new DiffuseMaterial(imageBrush);
                }
    
            }
    
    
            private void GenerateSphere()
            {
                int longitudes = 30;
                int latitudes = 30;
                double latitudeArcusIncrement = Math.PI / (latitudes - 1);
                double longitudeArcusIncrement = 2.0 * Math.PI / longitudes;
                for (int lat = 0; lat < latitudes; lat++)
                {
                    double latitudeArcus = lat * latitudeArcusIncrement;
                    double radius = Math.Sin(latitudeArcus);
                    //if ( lat == latitudes/2 ) radius *= 1.3;
                    double y = Math.Cos(latitudeArcus);
                    double textureY = (double)lat / (latitudes - 1);
                    for (int lon = 0; lon <= longitudes; lon++)
                    {
                        double longitudeArcus = lon * longitudeArcusIncrement;
                        position[lon, lat].X = radius * Math.Cos(longitudeArcus);
                        position[lon, lat].Y = y;
                        position[lon, lat].Z = -radius * Math.Sin(longitudeArcus);
                        texture[lon, lat].X = (double)lon / longitudes;
                        texture[lon, lat].Y = textureY;
                    }
                }
            }
    
            private void GenerateAllCylinders()
            { //At first delete all existing flats beginning with the last one
                for (int i = model3DGroup.Children.Count - 1;
                i >= IndexOfFirstGeometryModel3DInModel3DGroup; i--)
                    model3DGroup.Children.Remove((GeometryModel3D)model3DGroup.Children[i]);
                for (int lat = 0; lat < latitudes - 1; lat++)
                {
                    GeometryModel3D geometryModel3D = new GeometryModel3D();
                    geometryModel3D.Geometry = GenerateCylinder(lat);
                    geometryModel3D.Material = frontMaterial[lat];
                    geometryModel3D.BackMaterial = (DiffuseMaterial)Resources["backMaterial"];
                    model3DGroup.Children.Add(geometryModel3D);
                }
            }
    
    
    
            private MeshGeometry3D GenerateCylinder(int lat)
            {
                MeshGeometry3D meshGeometry3D = new MeshGeometry3D();
                for (int lon = 0; lon <= longitudes - emptySlices; lon++)
                //create a zigzag point collection
                {
                    Point3D p0 = position[lon, lat]; //on the ceiling
                    Point3D p1 = position[lon, lat + 1]; //on the floor
                    meshGeometry3D.Positions.Add(p0); //on the ceiling
                    meshGeometry3D.Positions.Add(p1); //on the floor
                    meshGeometry3D.Normals.Add((Vector3D)p0); //ceiling normal
                    meshGeometry3D.Normals.Add((Vector3D)p1); //floor normal
                    meshGeometry3D.TextureCoordinates.Add(texture[lon, lat]); //on the ceiling
                    meshGeometry3D.TextureCoordinates.Add(texture[lon, lat + 1]); //on the floor
                }
    
                for (int lon = 1; lon < meshGeometry3D.Positions.Count - 2; lon += 2)
                { //first triangle = left upper part of a rectangle
                    meshGeometry3D.TriangleIndices.Add(lon - 1); //left upper point
                    meshGeometry3D.TriangleIndices.Add(lon); //left lower point
                    meshGeometry3D.TriangleIndices.Add(lon + 1); //right upper point
                    //second triangle = right lower part of the rectangle
                    meshGeometry3D.TriangleIndices.Add(lon + 1); //right upper point
                    meshGeometry3D.TriangleIndices.Add(lon); //left lower point
                    meshGeometry3D.TriangleIndices.Add(lon + 2); //right lower point
                }
    
    
                return meshGeometry3D;
            }
    
        }
    }
        

    Результат:

    Вернуться к учебному плану