#6019 closed Bugs (fixed)
Convex hull and Area, combined, sometimes give wrong result
Reported by: | Owned by: | Barend Gehrels | |
---|---|---|---|
Milestone: | To Be Determined | Component: | geometry |
Version: | Boost 1.47.0 | Severity: | Problem |
Keywords: | convex hull area | Cc: |
Description
Attached is a program which calculates convex hull from a number of points. The three points actually on the hull are
(0,0) (0,105) (0,103)
making the hull a triangle with area 1407.5. However, the program (msvc compiler) returns 1406, with the points inserted in the order shown in the cpp file.
If all points except the three listed above are removed from the program, the answer returns to 1407.5.
Probably this is just me being stupid. In any case thank you very much for your help!
Attachments (1)
Change History (7)
by , 11 years ago
Attachment: | boost_geom_test.cpp added |
---|
comment:1 by , 11 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
comment:2 by , 11 years ago
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
comment:3 by , 11 years ago
Sorry, "1407.5" and "1406" were typos which I managed to copy to the bug report - should have read 5407.5 and 5406 respectively.
The correct answer is 5407.5.
The answer the program gives is 5406.
The answer the program gives if all except the three points on the hull are deleted, is 5407.5.
comment:4 by , 11 years ago
I don't know whether it might work if run as a multi point instead, now that bug has been fixed. The list of points in the example is certainly an odd shape for a polygon, I don't know what assumptions the polygon model is built on?
comment:5 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
OK, thanks for answering. There was indeed a problem if there were multiple left-most points, which was the case here. Fixed now. Thanks for your report.
comment:6 by , 11 years ago
To be complete, also in this test the next include should be added.
#include <boost/geometry/geometries/point_xy.hpp>
I've the opinion the program is changed in between. It now gives 5406, which is correct or at least near the correct value (but it still might be that you expect 5407.5).
Can you make your comment and the program consistent?