Opened 11 years ago

Closed 11 years ago

#6173 closed Bugs (fixed)

Self-intersected segments in result polygon of boost::geometry::intersection().

Reported by: m.arutyunyan@… Owned by: Barend Gehrels
Milestone: To Be Determined Component: geometry
Version: Boost 1.47.0 Severity: Problem
Keywords: self-intersected segments, intersection Cc:

Description

Hello,

I've encountered a problem with boost::geometry::intersection() - in some cases result polygon has very small segments (from 1e-3 to 1e-12) and what is more important self-intersected segments.

In attachements you can find files in Rhinoceros format: src1.txt, src2.txt - input polygons, res.txt - result polygon. Input polygons don't have any small or self-intersected segments, but resul polygon does have.

For example, in result polygon you can find

1) small segment

_Lines
44.998999899626156,-0.099999999997731209,0
44.998999899626135,-0.099999999999999645,0
_enter

2) self-intersected segments

_Lines
43.100000000000321,-3.9230090469121923,0
43.128897568583817,-3.8999999999999995,0
_enter
_Lines
43.128098762619501,-3.9006530151405459,0
43.200000000000323,-3.841874539852141,0
_enter

There are such delimeters in Rhino file format: "_Points", "_Lines", "_Polyline", "_enter". Example of Rhino file structure:

_Points
x,y,z
...
x,y,z
_enter
_Lines
x,y,z
...
x,y,z
_enter
_Polyline
x,y,z
...
x,y,z
_enter

Regards, Maksim

Attachments (3)

src1.txt (30.3 KB ) - added by m.arutyunyan@… 11 years ago.
input polygon in Rhino file format
src2.txt (30.4 KB ) - added by m.arutyunyan@… 11 years ago.
input polygon in Rhino file format
res.txt (40.9 KB ) - added by m.arutyunyan@… 11 years ago.
output polygon in Rhino file format

Download all attachments as: .zip

Change History (5)

by m.arutyunyan@…, 11 years ago

Attachment: src1.txt added

input polygon in Rhino file format

by m.arutyunyan@…, 11 years ago

Attachment: src2.txt added

input polygon in Rhino file format

by m.arutyunyan@…, 11 years ago

Attachment: res.txt added

output polygon in Rhino file format

comment:1 by m.arutyunyan@…, 11 years ago

Hello,

There is a simplier example to reproduce this issue, just use next polygons

src1:

-4.80000000000000970, -0.95000000000000000, 0
-4.89000000000000040, -1.00000000000000000, 0
-4.90000000000000810, -0.99000000000000865, 0
-4.91000000000000380, -0.90000000000000036, 0

src2:

-4.80000000000000970, -0.95000000000000000, 0
-4.89000000000000130, -1.00000000000000000, 0
-4.90000000000000810, -0.99000000000000865, 0
-4.91000000000000470, -0.90000000000000036, 0

And there we have result of boost::geometry::intersection() with self-intersections

-4.89000000000000060, -0.99999999999999967, 0
-4.90000549618320580, -0.98999450381681120, 0
-4.90000000000000830, -0.99000000000000865, 0
-4.91000000000000370, -0.90000000000000080, 0
-4.79956862745099060, -0.95019607843137210, 0
-4.80000000000000960, -0.94999999999999996, 0

Regards, Maksim

comment:2 by m.arutyunyan@…, 11 years ago

Resolution: fixed
Status: newclosed

It seems that bug fixed in v.1.48.0. Thanks!

Note: See TracTickets for help on using tickets.