Hi andrew,
Thanks for your response,
Yes I'm looking for a programmatic way and just for polygon shapes (with straight segments).
I tested your code with QCAD Professional and it works,
But when I test with other shapes :
Code: Select all
var clipper = new RPolygonClipper();
clipper.addSubjectPath([new RVector(0,0), new RVector(10,0), new RVector(10,10), new RVector(0,10)]);
clipper.addSubjectPath([new RVector(-2,2), new RVector(12,2), new RVector(12,-2), new RVector(-2,-2)]);
// union:
clipper.execute(RS.Union, RS.NonZero);
// print result:
for (var c=0; c<clipper.getSolutionPathCount(); c++) {
var vertices = clipper.getSolutionPath(c);
qDebug("polygon:" , vertices)
qDebug("area:" , Mod_Line2P.getArea(vertices))
}
I get these results :
polygon: RVector(12, 2, 0, true),RVector(10, 2, 0, true),RVector(10, 10, 0, true),RVector(0, 10, 0, true),RVector(0, 2, 0, true),
RVector(10, 2, 0, true),RVector(10, 0, 0, true),RVector(0, 0, 0, true),RVector(0, 2, 0, true),
RVector(-2, 2, 0, true),RVector(-2, -2, 0, true),RVector(12, -2, 0, true)
area: 116
When I excpect these results :
polygon expected: RVector(12, 2, 0, true),RVector(10, 2, 0, true),RVector(10, 10, 0, true),RVector(0, 10, 0, true),RVector(0, 2, 0, true),
RVector(-2, 2, 0, true),RVector(-2, -2, 0, true),RVector(12, -2, 0, true)
area expected: 136
Is this a bug ?