## Calculate Polyline area RPolyline::getArea() FS#1756

Please use this forum to post feedback and suggestions related to QCAD.

Moderator: andrew

CVH
Premier Member
Posts: 775
Joined: Wed Sep 27, 2017 4:17 pm
Location: Belgium; Antwerp

### Calculate Polyline area RPolyline::getArea() FS#1756

Andrew,

because you did not answer if it is ok to continue to comment on a closed bug report (FS#1756) please read my findings in the included pdf.

Included: Properly formated text as pdf
Included: Self-crossing arc segments of polys: pic 1
Included: Disambiguous nature of the oriëntation: pic 2
Included: Snapshot RPolyline::getArea()

I would be happy to precheck your adapted coding, just send the part to me in plain text.

Implementation in a QCAD release would be of great benefit to me for the study of a better method to asymmetrically scale polys with arcs.
Or you could sent me a pre-path like once before.

Regards
Attachments
RPolyline_Snapshot.txt
QCAD Greens 2.png (17.08 KiB) Viewed 1973 times
QCAD Greens 1.png (3.52 KiB) Viewed 1973 times

CVH
Premier Member
Posts: 775
Joined: Wed Sep 27, 2017 4:17 pm
Location: Belgium; Antwerp

### Re: Calculate Polyline area RPolyline::getArea() FS#1756

Murphy's law
“Anything that can go wrong, will”

Shamefully I admid I introduced a double fault, in fact a multi double fault.

Proof: mental exercise:
With chordArea always positive by definition.
Depending on the oriëntation of the base polygon:
- CCW base polygon, enclosed area left side, Green's theorem positive:
- bulge positive, right side, increase area, add chordArea to positive.
- bulge negative, left side, decrease area, substract chordArea from positive.
- CW base polygon, enclosed area right side, Green's theorem negative:
- bulge positive, right side, decrease area, add chordArea to negative.
- bulge negative, left side, increase area, substract chordArea from negative.

=> Disregarding the oriëntation the chordArea has the sign of the bulge.
=> The summed signed chordArea's are added to the signed Green's theorem area.
=> The total area is the absolute.

Where did this got wrong...
All starts with:

Misc/Script Examples/'Import/Export'/Dump Polyline script.
viewtopic.php?f=8&t=5566
CVH wrote:
Q: Why x from RVector and y from minus RVector? Why .arg(-v.y)?
A: The scripts in Misc > Examples are not meant for production use but are various examples that might or might not be useful. At one point I needed

a script the dumps polylines for use in a pixel based coordinate system with the origin at the top left.
I'd recommend to create your own script based on that and make changes as needed.

Tried but was not able to. No matter what I do the output was blank.
So I made a transform function importing the Command History text to my worksheets.
Meanwhile formatting the numbers to local. (viewtopic.php?f=8&t=5589)

Sometimes the reported oriëntaion was of.
In the 'Dump Polyline script' the method for that is less elaborate then what the QCAD core uses.
And the 'Dump Polyline script' reverses the polyline according to that.
Also this was patched.

Furthermore (-v.y) is mirroring and reverses the oriëntation.

I ended up with a lot of negations.
Ceaning this up for further use with the skewing topic I found I had to sum the sums and not distract them.

Regards
Attachments