Area of Irregular Polygon

Alex Tweedly alex at tweedly.org
Sat Nov 7 19:43:51 EST 2015


Actually, you should shorten the maths - makes it a bit more efficient


function getArea pPts
    if line 1 of pPts <> line -1 of pPts then return 0
    put 0 into tArea
    put empty into oldL
    repeat for each line L in pPts
       if oldL is not empty then
          --         put item 1 of L - item 1 of oldL into dx
          --         put item 2 of oldL + (item 2 of L - item 2 of oldL) 
/ 2 into avgY
          --         put dx * avgY into thisArea
          --         add thisArea to tArea
          add (item 1 of L - item 1 of oldL) * ( item 2 of oldL + item 2 
of L) / 2 to tArea
       end if
       put L into oldL
    end repeat
    return abs(tArea)

end getArea

-- Alex.

On 08/11/2015 00:09, Alex Tweedly wrote:
> Roger,
>
> try this (I've done some minimal testing, so do please check it ...)
> it assumes the polygon is closed
>
> function getArea pPts
>    if line 1 of pPts <> line -1 of pPts then return 0
>    put 0 into tArea
>    put empty into oldL
>    repeat for each line L in pPts
>       if oldL is not empty then
>          put item 1 of L - item 1 of oldL into dx
>          put item 2 of oldL + (item 2 of L - item 2 of oldL) / 2 into 
> avgY
>          put dx * avgY into thisArea
>          add thisArea to tArea
>       end if
>       put L into oldL
>    end repeat
>    return abs(tArea)
> end getArea
>
> NB you could shorten it, but I left each math step separate to make it 
> easier to debug / check
>
> -- Alex.
>
> On 07/11/2015 22:29, Roger Guay wrote:
>> Thanks very much, Scott. I do have a long points list that I would 
>> have to manipulate even before apply this technique. I’m not looking 
>> forward to that, but I may have to go this route.
>>
>> Cheers,
>>
>> Roger
>>
>>
>>> On Nov 7, 2015, at 12:05 PM, Scott Rossi <scott at tactilemedia.com> 
>>> wrote:
>>>
>>> It looks like this could translate to LC if you have the point 
>>> locations
>>> of your polygon:
>>>
>>> https://www.mathsisfun.com/geometry/area-irregular-polygons.html
>>>
>>>
>>> Regards,
>>>
>>> Scott Rossi
>>> Creative Director
>>> Tactile Media, UX/UI Design
>>>
>>>
>>>
>>>
>>> On 11/7/15, 2:01 PM, "use-livecode on behalf of Roger Guay"
>>> <use-livecode-bounces at lists.runrev.com on behalf of irog at mac.com> 
>>> wrote:
>>>
>>>> Can anyone think of an easy way of getting the area of an Irregular
>>>> polygon?
>>>>
>>>> Thanks,
>>>>
>>>> Roger
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>
>>>
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your 
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your 
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your 
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list