HP Forums

Full Version: (15C) Area and Perimeter of irregular polygon
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi!
I upload a document with a program for calculating the Area and the Perimeter of an irregular polygon for the HP 15C.
Have fun!
There's an error in the Area formula (not in the program): the first term also needs a minus sign.
If the area is all you need, you may try this small program (concocted on the fly ;-)
Enter the coefficients in any matrix, recall the matrix to the stack and (GSB) A.

 33 Bytes

                   X       Y       Z       T
001 LBL A
002 STO I
003 MATRIX 1
004uRCL (i)
005 RCL 0          dummy
006 0
007uRCL (i)
008 LBL 1
009 GSB 0
010uRCL (i)        yj      A       xj      xj
011 GTO 1
012 GSB 0
013 ABS
014 2
015 /
016 RTN
017 LBL 0          yi      A               xi
018 R^             xi      yi      A
019uRCL (i)
020 +              xi+xj   yi      A       A
021 X<>Y
022 LASTX
023 Rv             yi      xi+xj   A       xj
024 RCL- (i)
025 x
026 +
027 RTN


Cheers, Werner
Hi Werner!

I think the formula is OK.. but a small error at the end of page 4 in the

Area = ...

I corrected the -1. It should be 1... Sorry!

I upload a new document with the correction.

I will try your program today.

Marcel
Hi Marcel, yes that was an error, too.
But the formula you wrote (apart from the ||):

\(
Area = \frac{(x_{1}y_{2}-x_{2}y_{1})-(x_{2}y_{3}-x_{3}y_{2})- ..-(x_{n}y_{1}-x_{1}y_{n})}{2}
\)

That first term must be negative also, or just switch them all around

\(
Area = \frac{(x_{2}y_{1}-x_{1}y_{2})+(x_{3}y_{2}-x_{2}y_{3})+ ..+(x_{1}y_{n}-x_{n}y_{1})}{2}
\)

Cheers, Werner
Hi again Werner!

In english you said Shame on me! (I speak french..)

I put minus sign (-) but it is a plus sign (+).

It is corrected now...


Marcel!
Hi Werner!

I try your program..Wow!

You must add to it the peremeter and upload it on the forum!

I am waiting for your version.

Marcel.
Though rather long and involved, this thread may be relevant to the current discussion.
Area (A) (improved wrt the previous version) and perimeter (C)
(though not together; but the program can be easily changed to that extent, using a data register)

55 bytes


                   X       Y       Z       T
001 LBL A
002 GSB 0
003 LBL 1          yi      A       -       xi
004 RCLx (i)       xj*yi   A       -       xi
005 R^
006uRCL (i)
007 Rv             xi      xj*yi   A       xj
008 RCLx (i)       yj*xi
009 -
010 +
011uRCL (i)
012 GTO 1
013 Rv
014 ABS
015 2
016 /
017 RTN

018 LBL C
019 GSB 0
020 LBL 2          yi      P       xi
021 RCL (i)        xj      yi      P       xi
022 R^
023 -
024uRCL (i)
025 Rv             xj-xi   yi      P       xj
026 X<>Y
027 RCL- (i)
028 ->P            d       -       P       xj
029 X<>Y
030 Rv
031 +              P       xj
032uRCL (i)
033 GTO 2
034 Rv
035 RTN

036 LBL 0
037 STO I
038 MATRIX 1
039 RCL DIM I 2 n
040 SQRT
041 RCL g(i)
042 0
043 RCL DIM I
044 RCL g(i)       yn      0       xn      xn
045 RTN


Cheers, Werner
Reference URL's