# Math question: How to compute the area of polygons

Jim Hurley jhurley at infostations.com
Fri Mar 21 21:49:00 EST 2003

```>Jim Hurley wrote:
>on mouseUp
>     put field 1 into tList
>     put 0 into area
>     put  line 1 of tList into pOld
>     repeat with i = 1 to the number of lines in tList
>       put  line i of tList into  pNew
>       put pNew into pOld
>     end repeat
>     put area
>end mouseUp
>
>function thisToArea ptNew,ptOld
>     put item 1 of ptNew into xNew
>     put item 2 of ptNew into yNew
>     put item 1 of ptOld into xOld
>     put item 2 of ptOld into yOld
>     return -(xNew - xOld)*(yNew + yOld)/2
>end thisToArea
>
>
>  >    put  line 1 of tList into pOld
>

Dar Scott wrote:

>Should this be -1 to get the last edge?
>

Dar,

Actually it contributes nothing to the area since the  first term in
the sum is the area under the line joining the first point with
itself; not very smart but, no harm, no foul.  It would  have been
more sensible if I had started the sum with i = 2.

Since the last point in the list is identical to the first point (it
is a *closed* polygon), the last edge is included by performing the
repeat up to the number of lines (points in the polygon) in tList.

But a cleaner (and faster) version might be:

on mouseUp
put field 1 into tList
put 0 into area
put  line 1 of tList into pOld
repeat for each line tLine in tList
put tLine into pOld
end repeat
put tArea
end mouseUp

But you still get no contribution from the first repeat, but what is
0 among friends.

Regards,

Jim

```