private void NewFigure(object sender, RoutedEventArgs e)
        {
            var sphere = new SphereModel3D
            {
                Radius   = random.NextDouble() * 3 + 0.1,
                Center   = new Point3D(0, 0, 0),
                Material = new Color {
                    R = (byte)random.Next(0, 256), G = (byte)random.Next(0, 256), B = (byte)random.Next(0, 256), A = random.Next(0, 2) == 0 ? (byte)255 : (byte)random.Next(64, 256)
                },
                Orbita     = random.NextDouble() * 7 + 2,
                Angle      = random.Next(0, 360),
                AngleSpeed = random.NextDouble() * 3 + 0.1
            };

            sphere.Geometry.Transform = new Transform3DGroup
            {
                Children = new Transform3DCollection
                {
                    new TranslateTransform3D(sphere.Orbita, 0, 0),
                    new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 0, 1), sphere.Angle))
                }
            };
            sphere.Timer.Enabled = true;
            sphere.UpdateSphereMesh();
            spheres.Add(sphere);
            meshGroup.Children.Add(sphere.Geometry);
        }
        public MainWindow()
        {
            InitializeComponent();
            SphereModel3D center = new SphereModel3D {
                Radius = 0.5
            };

            center.UpdateSphereMesh();
            meshGroup.Children.Add(center.Geometry);
        }
 private void ChangeSize(object sender, RoutedEventArgs e)
 {
     SelectedSphere.Radius = random.NextDouble() * 3 + 0.1;
     SelectedSphere.UpdateSphereMesh();
 }