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 add thisToArea(pNew,pOld) to area 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
add thisToArea(tLine,pOld) to tArea
put tLine into pOld
end repeat
put tArea
end mouseUpBut you still get no contribution from the first repeat, but what is 0 among friends.
Regards,
Jim _______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
