CircleDragInfo AddCylinder(Cylinder area)
        {
            var info = new CircleDragInfo
            {
                Area   = area,
                Center = new Ellipse {
                    Fill = Brushes.Yellow, Width = centerSize, Height = centerSize, Opacity = 0.5
                },
                Circle = new Ellipse
                {
                    Fill            = Brushes.Red,
                    StrokeThickness = 5,
                    Opacity         = 0.3,
                    Stroke          = Brushes.Yellow,
                    Width           = area.R * 2,
                    Height          = area.R * 2
                }
            };

            Canvas.SetLeft(info.Circle, area.X - area.R);
            Canvas.SetTop(info.Circle, area.Y - area.R);
            Canvas.SetLeft(info.Center, area.X - centerSize / 2.0);
            Canvas.SetTop(info.Center, area.Y - centerSize / 2.0);
            areaInfos.Add(info);
            canvas.Children.Add(info.Circle);
            canvas.Children.Add(info.Center);
            return(info);
        }
		CircleDragInfo AddCylinder(Cylinder area)
		{
			var info = new CircleDragInfo
			{
				Area = area,
				Center = new Ellipse { Fill = Brushes.Yellow, Width = centerSize, Height = centerSize, Opacity = 0.5 },
				Circle = new Ellipse
				{
					Fill = Brushes.Red,
					StrokeThickness = 5,
					Opacity = 0.3,
					Stroke = Brushes.Yellow,
					Width = area.R * 2,
					Height = area.R * 2
				}
			};
			Canvas.SetLeft(info.Circle, area.X - area.R);
			Canvas.SetTop(info.Circle, area.Y - area.R);
			Canvas.SetLeft(info.Center, area.X - centerSize / 2.0);
			Canvas.SetTop(info.Center, area.Y - centerSize / 2.0);
			areaInfos.Add(info);
			canvas.Children.Add(info.Circle);
			canvas.Children.Add(info.Center);
			return info;
		}