private void UpdateData(Model.Result result) { if (AddEllipse) { Ellipsies.Add(new Ellipse() { Width = 30, Height = 30 }); Canvas.Children.Add(Ellipsies.Last()); Canvas.SetLeft(Canvas.Children[Canvas.Children.Count - 1], 625); Canvas.SetTop(Canvas.Children[Canvas.Children.Count - 1], 575); Animations.Add(new DoubleAnimationUsingKeyFrames()); AddEllipse = false; } UpdateSeries(HeightSeries, result.Height); UpdateSeries(SpeedSeries, result.Speed); UpdateSeries(AccelerationSeries, result.Acceleration); Labels.Clear(); Labels.AddRange(result.Time.ConvertAll(new Converter <double, string>((double x) => { return(x.ToString()); }))); Ellipsies.Last().Fill = new SolidColorBrush(Chart.Colors[(int)(colorIndex - Chart.Colors.Count * Math.Truncate(colorIndex / (double)Chart.Colors.Count))]); UpdateAnimation = true; DataChanged = true; Times = result.Time; if (DataTab.IsSelected) { UpdateDataTab(); } if (AnimationTab.IsSelected) { SetAnim(); } }
private void UpdateData(Model.Result result) { if (AddEllipse) { Polylines.Add(new Polyline { Stroke = new SolidColorBrush(Colors.Black), StrokeThickness = 5, StrokeEndLineCap = PenLineCap.Round, StrokeStartLineCap = PenLineCap.Round }); AnimCanvas.Children.Add(Polylines.Last()); Canvas.SetLeft(AnimCanvas.Children[AnimCanvas.Children.Count - 1], 200); Canvas.SetTop(AnimCanvas.Children[AnimCanvas.Children.Count - 1], 200); Ellipsies.Add(new Ellipse() { Width = 30, Height = 30 }); AnimCanvas.Children.Add(Ellipsies.Last()); Canvas.SetLeft(AnimCanvas.Children[AnimCanvas.Children.Count - 1], 625); Canvas.SetTop(AnimCanvas.Children[AnimCanvas.Children.Count - 1], 575); YAnimations.Add(new DoubleAnimationUsingKeyFrames()); XAnimations.Add(new DoubleAnimationUsingKeyFrames()); AddEllipse = false; } UpdateSeries(YSeries, result.Coordinates, v => v.Y); UpdateSeries(XSeries, result.Coordinates, v => v.X); UpdateSeries(YSpeedSeries, result.Speed, v => v.Y); UpdateSeries(XSpeedSeries, result.Speed, v => v.X); Labels.Clear(); Labels.AddRange(result.Time.ConvertAll(new Converter <double, string>((double x) => { return(x.ToString()); }))); Ellipsies.Last().Fill = new SolidColorBrush(Chart.Colors[(int)(colorIndex - Chart.Colors.Count * Math.Truncate(colorIndex / (double)Chart.Colors.Count))]); Polylines.Last().Stroke = new SolidColorBrush(Chart.Colors[(int)(colorIndex - Chart.Colors.Count * Math.Truncate(colorIndex / (double)Chart.Colors.Count))]); UpdateAnimation = true; DataChanged = true; Times = result.Time; if (DataTab.IsSelected) { UpdateDataTab(); } if (AnimationTab.IsSelected) { SetAnim(); } if (ExperimentsTab.IsSelected) { UpdateExperimentsTab(); } }
private void OnCalculationComplete(object sender, Model.Result result) { Dispatcher.Invoke(new UpdateDelegate(UpdateData), result); }