private void MergeFigures_Click(object sender, RoutedEventArgs e)
        {
            var morfs = canvas.Children.Cast <FrameworkElement>().Where(x => x.Name == "Polyline").ToArray();

            if (morfs.Any())
            {
                for (var i = 0; i < morfs.Length; ++i)
                {
                    canvas.Children.Remove(morfs[i]);
                }
            }

            /*var figureA = shape.GetShapes().Select(x => x as Line).ToList();
             * var figureB = canvas.Children.Cast<UIElement>()
             *  .Where(x => x is Line).Select(x => x as Line)
             *  .Where(x => x.Tag != null && x.Tag.ToString() != "Axis").Except(figureA).ToList();*/
            Morffing morffing     = new Morffing();
            var      numberPoints = int.Parse(MakePoints.Text);

            /*var A = int.Parse(ProportionA.Text);
             * var B = int.Parse(ProportionB.Text);
             * var linePoints = new List<Point[]>();
             * var points = BreakLines(figureA, numberPoints).ToArray();
             * linePoints.Add(points);
             * points = BreakLines(figureB, numberPoints).ToArray();
             * linePoints.Add(points);*/
            var figures     = group.GetFigures().Select(x => x.Select(y => y as Line).ToList()).ToList();
            var proportions = new double[stackpanelProportions.Children.Count];
            var linePoints  = new List <Point[]>();

            foreach (var f in figures)
            {
                linePoints.Add(BreakLines(f, numberPoints).ToArray());
            }
            for (var i = 0; i < proportions.Length; ++i)
            {
                proportions[i] = int.Parse((stackpanelProportions.Children[i] as TextBox).Text);
            }
            //var polyLine = morffing.MorffingShapes(linePoints, new double[] { A, B }, numberPoints);
            var polyLine = morffing.MorffingShapes(linePoints, proportions, numberPoints);

            canvas.Children.Add(polyLine);
        }
        private void sliderMorffing_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            var morfs = canvas.Children.Cast <FrameworkElement>().Where(x => x.Name == "Morffing").ToArray();

            if (morfs.Any())
            {
                for (var i = 0; i < morfs.Length; ++i)
                {
                    canvas.Children.Remove(morfs[i]);
                }
            }

            var start = shape.GetShapes().Select(x => x as Line).ToList();
            var end   = canvas.Children.Cast <UIElement>()
                        .Where(x => x is Line).Select(x => x as Line)
                        .Where(x => x.Tag != null && x.Tag.ToString() != "Axis").Except(start).ToList();
            Morffing morffing = new Morffing(Math.Round(e.NewValue), start, end);
            var      lines    = morffing.MorffingLines();

            foreach (var l in lines)
            {
                canvas.Children.Add(l);
            }
        }