private void ParallelStaticComputation_DoWork(object sender, DoWorkEventArgs e)
        {
            // Calcul de l'orbite de la comète
            orbitalPoints = ComputeOrbit();

            // Calcul de la forme de la trainée de la comète
            for (double nu = -120; nu <= 120; nu += 30)
            {
                TailModel tailModel = comet.ComputeSyndynams(nu);
                tailModels.Add(tailModel);
            }
        }
        private void ParallelAnimationComputation_DoWork(object sender, DoWorkEventArgs e)
        {
            // Calcul de l'orbite de la comète
            orbitalPoints = ComputeOrbit();

            // Calcul de la forme de la trainée de la comète
            for (double nu = -trueAnomalyThreshold; nu <= trueAnomalyThreshold; nu += 0.5)
            {
                TailModel tailModel = comet.ComputeSyndynams(nu);
                tailModels.Add(tailModel);
                parallelAnimationComputation.ReportProgress(0);
                System.Threading.Thread.Sleep(time);
            }
        }
        private void DrawCometTails(TailModel a_tailModel)
        {
            // Dessin de la comète
            Ellipse nucleus = new Ellipse();

            nucleus.Width  = 3;
            nucleus.Height = 3;
            nucleus.Fill   = Brushes.OrangeRed;
            nucleus.Stroke = Brushes.OrangeRed;
            canvas.Children.Add(nucleus);
            Canvas.SetLeft(nucleus, centerX + -a_tailModel.NucleusPosition.X * scale - 1.65);
            Canvas.SetTop(nucleus, centerY + a_tailModel.NucleusPosition.Y * scale - 1.65);

            Polyline cometShape = new Polyline();

            cometShape.Fill            = Brushes.Transparent;
            cometShape.Stroke          = Brushes.OrangeRed;
            cometShape.StrokeThickness = 1;
            foreach (var point in a_tailModel.SyndamA)
            {
                cometShape.Points.Add(new System.Windows.Point(-point.X * scale, point.Y * scale));
            }
            canvas.Children.Add(cometShape);
            Canvas.SetLeft(cometShape, centerX);
            Canvas.SetTop(cometShape, centerY);
            cometShape                 = new Polyline();
            cometShape.Fill            = Brushes.Transparent;
            cometShape.Stroke          = Brushes.OrangeRed;
            cometShape.StrokeThickness = 1;
            foreach (var point in a_tailModel.SyndamB)
            {
                cometShape.Points.Add(new System.Windows.Point(-point.X * scale, point.Y * scale));
            }
            canvas.Children.Add(cometShape);
            Canvas.SetLeft(cometShape, centerX);
            Canvas.SetTop(cometShape, centerY);
        }