         
         if view !== viewBar
         {
-            
+            startingPoint = touch.location(in:self)
+        }
+    }
+    
+    override func touchesMoved(_ touches:Set<UITouch>, with event:UIEvent?)
+    {
+        guard
+        
+            let startingPoint:CGPoint = self.startingPoint
+        
+        else
+        {
+            return
         }
     }
     
     override func touchesEnded(_ touches:Set<UITouch>, with event:UIEvent?)
     {
-    }
-    
-    override func touchesMoved(_ touches:Set<UITouch>, with event:UIEvent?)
-    {
+        startingPoint = nil
     }
     
     override func touchesCancelled(_ touches:Set<UITouch>, with event:UIEvent?)
     {
-        
+        startingPoint = nil
     }
 }

    weak var viewMetal:VLinearEquationsPlotMetal?
    private weak var controller:CLinearEquationsPlot!
    private weak var viewBar:VLinearEquationsPlotBar!
    private let kBarHeight:CGFloat = 80
    
    override init(controller:CController)

    {
        guard
        
            let touch:UITouch = touches.first,
            let view:UIView = touch.view
        
        else
        {
