pts1 = {13.87, 15.03, 16.17, 17.23, 18.08, 18.64, 18.86, 18.78, 18.48, 18.07, 17.63, 17.21, 16.84, 16.53, 16.31, 16.16, 16.08, 16.07, 16.12, 16.22, 16.37, 16.56, 16.78, 17.05, 17.36, 17.69, 18.06, 18.46, 18.85, 19.23, 19.54, 19.76, 19.87, 19.84, 19.67, 19.42, 19.09, 18.72, 18.35, 17.98, 17.66, 17.37, 17.12, 16.93, 16.78, 16.65, 16.57, 16.51, 16.47, 16.48, 16.49, 16.52, 16.55, 16.58, 16.62, 16.70, 16.77, 16.88, 16.98, 17.08, 17.18, 17.30, 17.43, 17.64, 17.86, 18.09, 18.33, 18.58, 18.86, 19.22, 19.62, 20.05, 20.50, 20.94, 21.36, 21.82, 22.37, 23.10, 23.93, 24.80, 25.58, 26.21, 26.65, 26.98, 27.23, 27.46, 27.68, 27.87, 28.03, 28.19, 28.36, 28.58, 28.82, 29.04, 29.24, 29.44, 29.66, 29.93, 30.23, 30.55, 30.89, 31.20, 31.50, 31.78, 32.04, 32.29, 32.55, 32.83, 33.11, 33.40, 33.74, 34.16, 34.64, 35.24, 36.01, 36.86, 37.77, 38.73, 39.69, 40.76, 41.91, 43.15, 44.56, 45.87, 46.85, 47.55, 47.61, 46.95, 45.73, 44.25, 42.74, 41.29, 39.91, 38.63, 37.43, 36.38, 35.60, 34.96, 34.47, 34.14, 33.91, 33.76, 33.70, 33.72, 33.83, 33.99, 34.11, 34.18, 34.14, 33.96, 33.70, 33.34, 32.94, 32.54, 32.20, 31.99, 31.96, 32.07, 32.31, 32.70, 33.21, 33.84, 34.60, 35.49, 36.52, 37.49, 38.19, 38.44, 38.11, 37.41, 36.62, 35.83, 35.15, 34.61, 34.27, 34.15, 34.26, 34.56, 35.04, 35.75, 36.76, 38.21, 40.24, 43.32, 48.85, 60.42, 49.61, 44.05, 40.82, 38.64, 37.06, 35.90, 35.04, 34.44, 34.07, 33.99, 34.09, 34.35, 34.71, 35.16, 35.66, 36.10, 36.41, 36.48, 36.21, 35.60, 34.79, 33.91, 33.05, 32.24, 31.53, 30.94, 30.52, 30.21, 30.04, 30.01, 30.03, 30.05, 30.05, 30.01, 29.98, 29.91, 29.75, 29.48, 29.10, 28.62, 28.11, 27.61, 27.14, 26.69, 26.26, 25.88, 25.56, 25.26, 25.06, 24.93, 24.78, 24.57, 24.33, 24.07, 23.85, 23.62, 23.41, 23.27, 23.08, 22.88, 22.70, 22.50, 22.26, 21.98, 21.69, 21.37, 21.03, 20.68, 20.41, 20.13, 19.85, 19.64, 19.44, 19.24, 19.07, 18.88, 18.68, 18.47, 18.24, 18.03, 17.83, 17.62, 17.40, 17.17, 16.93, 16.65, 16.40, 16.14, 15.83, 15.46, 15.06, 14.63, 14.17, 13.70, 13.22, 12.73, 12.27, 11.84, 11.44, 11.10, 10.76, 10.40, 10.01, 9.60, 9.20, 8.82, 8.45, 8.11, 7.77, 7.41, 7.06, 6.70, 6.34, 6.00, 5.67, 5.33, 5.01, 4.67, 4.35, 4.04, 3.74, 3.45, 3.18, 2.90, 2.64, 2.38, 2.13, 1.89, 1.67, 1.45, 1.26, 1.08, 0.91, 0.76, 0.62, 0.49, 0.38, 0.27, 0.19, 0.12, 0.06, 0.03, 0.01, 0.00, 0.01, 0.04, 0.09, 0.16, 0.25, 0.36, 0.49, 0.64, 0.82, 1.02, 1.24, 1.49, 1.77, 2.08, 2.42, 2.79, 3.20, 3.64, 4.12, 4.65, 5.21, 5.82, 6.48, 7.19, 7.96, 8.78, 9.67, 10.62, 11.65, 12.73}
pts2 = {15.11, 13.68, 12.37, 11.18, 10.10, 9.11, 8.21, 7.38, 6.61, 5.91, 5.25, 4.66, 4.11, 3.61, 3.14, 2.72, 2.33, 1.98, 1.66, 1.37, 1.11, 0.89, 0.69, 0.52, 0.37, 0.25, 0.15, 0.08, 0.03, 0.01, 0.00, 0.01, 0.04, 0.09, 0.15, 0.23, 0.32, 0.42, 0.54, 0.67, 0.82, 0.98, 1.14, 1.32, 1.52, 1.72, 1.94, 2.18, 2.42, 2.69, 2.97, 3.26, 3.57, 3.87, 4.19, 4.51, 4.84, 5.17, 5.49, 5.80, 6.13, 6.44, 6.74, 7.06, 7.36, 7.66, 7.98, 8.30, 8.63, 8.96, 9.29, 9.64, 9.99, 10.35, 10.74, 11.12, 11.47, 11.81, 12.11, 12.38, 12.67, 12.94, 13.23, 13.54, 13.83, 14.16, 14.50, 14.83, 15.18, 15.52, 15.83, 16.15, 16.45, 16.74, 17.07, 17.37, 17.67, 17.98, 18.27, 18.58, 18.90, 19.20, 19.49, 19.77, 20.01, 20.29, 20.57, 20.86, 21.20, 21.55, 21.93, 22.37, 22.82, 23.30, 23.81, 24.32, 24.85, 25.39, 25.93, 26.49, 27.00, 27.45, 27.89, 28.29, 28.67, 29.13, 29.63, 30.12, 30.64, 31.19, 31.76, 32.36, 33.03, 33.82, 34.69, 35.60, 36.57, 37.45, 38.12, 38.46, 38.64, 38.76, 38.89, 39.05, 39.29, 39.61, 40.02, 40.67, 41.59, 42.74, 43.98, 45.24, 46.24, 46.61, 46.51, 46.04, 45.27, 44.25, 43.10, 41.96, 41.01, 40.37, 39.96, 39.70, 39.62, 39.70, 39.98, 40.58, 41.46, 42.62, 43.98, 45.31, 46.24, 46.51, 46.12, 45.38, 44.42, 43.37, 42.30, 41.41, 40.74, 40.39, 40.25, 40.28, 40.46, 40.81, 41.33, 42.07, 43.11, 44.65, 46.84, 49.76, 53.19, 55.64, 54.70, 53.03, 51.44, 49.93, 48.34, 46.94, 45.68, 44.56, 43.72, 43.24, 43.11, 43.20, 43.54, 44.06, 44.70, 45.23, 45.73, 46.22, 46.61, 47.01, 47.53, 48.23, 48.75, 48.71, 47.91, 46.71, 45.65, 44.74, 43.94, 43.34, 42.85, 42.45, 42.29, 42.32, 42.54, 42.93, 43.37, 44.00, 44.90, 46.05, 47.89, 49.76, 48.99, 46.26, 43.46, 41.07, 39.05, 37.35, 35.89, 34.58, 33.48, 32.64, 32.02, 31.53, 31.22, 31.05, 30.91, 30.80, 30.67, 30.47, 30.19, 29.80, 29.35, 28.90, 28.40, 27.92, 27.52, 27.12, 26.79, 26.55, 26.34, 26.22, 26.16, 26.14, 26.15, 26.21, 26.33, 26.34, 26.37, 26.37, 26.35, 26.29, 26.26, 26.29, 26.38, 26.57, 26.85, 27.11, 27.29, 27.33, 27.24, 27.07, 26.87, 26.70, 26.60, 26.48, 26.29, 26.03, 25.76, 25.50, 25.28, 25.10, 24.91, 24.71, 24.50, 24.28, 24.07, 23.87, 23.71, 23.53, 23.31, 23.02, 22.70, 22.39, 22.12, 21.84, 21.58, 21.32, 21.04, 20.79, 20.55, 20.34, 20.22, 20.11, 20.04, 20.02, 20.01, 20.02, 20.06, 20.08, 20.11, 20.10, 20.04, 19.93, 19.74, 19.48, 19.19, 18.84, 18.45, 18.07, 17.67, 17.29, 16.94, 16.62, 16.35, 16.14, 15.98, 15.88, 15.84, 15.85, 15.95, 16.11, 16.36, 16.71, 17.15, 17.70, 18.36, 19.13, 20.01, 20.91, 21.63, 21.81, 21.19, 19.91, 18.31, 16.67}
Console.WriteLine(string.format("Overlap using cartesian is {0}%", calcOverlapCartesian(pts1, pts2, -40)))
Console.WriteLine(string.format("Overlap using polar is {0}%", calcOverlappolar(pts1, pts2, -40)))
Function calcOverlapCartesian(P1 as Double(), P2 as Double(), min as integer) as Double
Dim lower, higher as Double
For i as Short = 0 to 359
lower += math.max(Math.Min(min - P1(i), min - P2(i)), 0)
higher += math.max(Math.Max(min - P1(i), min - P2(i)), 0)
console.writeline(higher)
Return 100 * lower / higher
Function calcOverlapPolar(P1 as Double(), P2 as Double(), min as integer) as Double
Dim lower, higher as Double
For i as Short = 0 to 359
lower += math.pow(math.max(Math.Min(min - P1(i), min - P2(i)), 0), 2)
higher += math.pow(math.max(Math.Max(min - P1(i), min - P2(i)), 0), 2)
console.writeline(higher)
Return 100 * lower / higher