anchor.diff:                      xn := yCurr-yPrev;
                       yn := xPrev-xCurr;
                       // normalize..
  -                    pointDist := ComputeDistanceBetweenPoints(xn, yn);
  +                    pointDist := sqrt((xn*xn)+(yn*yn));
   
                       //draw left side
                       if validL then
  
positive.code: 
  procedure TSliceDiffGeometryDoublePolygonLR.PolygonComputation(aXDCommon, aYDCommon, aXDExtra, aYDExtra, aXPrev, aYPrev, aXCurr, aYCurr: Double; aColor: TGeoColors; aBitmap: FMX.Graphics.TBitmap);
  var
    polyPoints: TArray<Double>;
    polygonCommon, polygonExtra: TPolygon;
  begin
    setLength(polygonCommon, 5);
    polyPoints := [aXPrev, aYPrev, aXCurr, aYCurr, aXCurr+aXDCommon, aYCurr+aYDCommon, aXPrev+aXDCommon, aYPrev+aYDCommon];
    ConstructPolygon(polyPoints, polygonCommon);
  
    if abs(aXDCommon) <> abs(aXDExtra) then
    begin
      setLength(polygonExtra, 5);
      polyPoints := [polygonCommon[3].X, polygonCommon[3].Y, polygonCommon[2].X, polygonCommon[2].Y, aXCurr+aXDExtra, aYCurr+aYDExtra, aXPrev+aXDExtra, aYPrev+aYDExtra];
      ConstructPolygon(polyPoints, polygonExtra);
    end;
  
    DrawFillPolygon(aColor, aBitmap, polygonCommon, polygonExtra, abs(aXDCommon), abs(aXDExtra));
  end;
  
  function TSliceDiffGeometryDoublePolygonLR.ComputeCoordinateDist(aWidth, aActiveValue, aRefValue, aCapacityFactor, aXY_Diff, aPerpDist: Double; aIsCommonPoly: Boolean): Double;
  
negative.code:   FreeAndNil(canvasLock);
    Log.Finish();
  end.
  