Simplify Poly

Discussion forum for contributors and developers who are using the QCAD ECMAScript development platform or the C++ plugin interface or who are otherwise looking to contribute to QCAD (translations, documentation, etc).

Moderator: andrew

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

Simplify Poly

Post by CVH » Tue Jun 23, 2020 8:08 pm

Andrew,

I make use of poly.simplify(Tolerance)

If I swap in units I have to keep track of it. :!:
(0,001 in Inch is not the same as 0,001 in mm)
If it is an angle tolerance, are that degrees or radians :?:

I failed in the quest for the answer. :oops:

In the GUI the Tolerance is the 'Maximum Deviation from original polyline'
AKA a distance from any node to the line segment bypassing that node.
Checked it, and it is a distance.

In RPolyline.h: ... Also a distance value RS::PointTolerance but default rather small.
bool simplify(double tolerance = RS::PointTolerance);

poly.simplify(); will be of little to no use in a real world situation.
eg. isSplineEntity section of Explode.explodeEntity of Explode.js.
There has to be a default of course and while its an absolute the minimum is the safest choise ever.

https://qcad.org/rsforum/viewtopic.php? ... ify#p16745
https://qcad.org/doc/qcad/latest/refere ... neSimplify
Speek of maximum angle deviation.

https://qcad.org/doc/qcad/3.0/developer ... 25c6837d3f
https://qcad.org/doc/qcad/3.0/developer ... 11b5405c1f
Speek of angle tolerance what is about the same in the correct context.

Simplify has two entries in QCAD ini, an angle and the last succesfully
used distance tolerance in my native format:

Code: Select all

[Simplify]
AngleTolerance=100
Tolerance="0,19"

PolylineSimplify (PRO) has an angle entry in QCAD ini:

Code: Select all

[PolylineSimplify]
AngleTolerance=10
VisibleInMenu=true
VisibleInToolBar=true
VisibleInCadToolBar=true
VisibleInMatrixPanel=true
What looks like the entries of an init section.

As Pro user, lets say I am a bit confused. :?

Regards,
CVH
QCADpro 3.24.3.10 / win7pro 32 bit / 4GB / 1e generation i7 2.6Ghz / HDD GeForce GT 520

User avatar
andrew
Site Admin
Posts: 7025
Joined: Fri Mar 30, 2007 6:07 am

Re: Simplify Poly

Post by andrew » Wed Jun 24, 2020 11:44 am

Stating with QCAD 3.23.0, the Ramer Douglas Peucker algorithm is used to simplify line segments of polylines, "tolerance" being the "epsilon" or maximum deviation from the original polyline. The manual will be updated.

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

Re: Simplify Poly

Post by CVH » Wed Jun 24, 2020 12:31 pm

Thanks,
CVH
QCADpro 3.24.3.10 / win7pro 32 bit / 4GB / 1e generation i7 2.6Ghz / HDD GeForce GT 520

Post Reply

Return to “QCAD Developers and Contributors”