Опубликован: 01.11.2011 | Доступ: свободный | Студентов: 1424 / 63 | Оценка: 3.84 / 3.44 | Длительность: 15:38:00
Специальности: Программист
Практическая работа 5:

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

< Практическая работа 4 || Практическая работа 5: 12 || Лекция 8 >

Упражнение 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>
    
Листинг .

Переходим в окно MainWindow.xaml.cs и вводим следующий код (http://www.miszalok.de/C_00/Index_all_Courses.htm):

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;
        }

    }
}
    
Листинг .

Результат:

< Практическая работа 4 || Практическая работа 5: 12 || Лекция 8 >