Given the n + 1 vertices x[0], y[0] .. x[N], y[N] of a simple polygon described in a clockwise direction, then the polygon's area can be calculated by:

abs( (sum(x[0]*y[1] + ... x[n-1]*y[n]) + x[N]*y[0]) -
     (sum(x[1]*y[0] + ... x[n]*y[n-1]) + x[0]*y[N])
   ) / 2
(Where abs returns the absolute value)

Task

Write a function/method/routine to use the the Shoelace formula to calculate the area of the polygon described by the ordered points:

     (3,4), (5,11), (12,8), (9,5), and (5,6) 



Show the answer here, on this page.




arraybase 1
dim array = {{3,4}, {5,11}, {12,8}, {9,5}, {5,6}}
 
print "The area of the polygon = "; Shoelace(array)
end
 
function Shoelace(p)
    sum = 0
    for i = 1 to p[?][] -1
        sum += p[i][1] * p[i +1][2]
        sum -= p[i +1][1] * p[i][2]
    next i
    sum += p[i][1] * p[1][2]
    sum -= p[1][1] * p[i][2]
    return abs(sum) \ 2
end function