Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Is CGAL::intersection buggy?

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Is CGAL::intersection buggy?


Chronological Thread 
  • From: Christopher Mitchell <>
  • To:
  • Subject: Re: [cgal-discuss] Is CGAL::intersection buggy?
  • Date: Fri, 4 Feb 2022 08:50:39 -0500
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23:YhEpZqtpkBhH2nv0Tn+wp85pdOfnVJJYMUV32f8akzHdYApBsoF/q tZmKW6Faf2MZjD3fdB2atvg9xhXvZfUmIcxSwVrq383EyMQgMeUXt7xwmXYb3rDdJWbJK5Ex 5xDMYeYdJhcolv0/ErF3m3J9CEkvU2wbuOgTraCY0idfCc8IMsboUsLd9UR38g40bBVPyvX4 Ymo+5eHZAf/s9JJGjt8B5yr+EsHUMva42twUmwWPZina3eD/5W9JMt3yZCZdxMUcKEMdgKJb 7qrIIWCw4/s10xF5uVJPVrMWhZirrb6ZWBig5fNMkSoqkAqSicais7XOBeAAKtao23hojx/9 DlCnbG9cVpxE5TXobQ6eBN3EwthHvRbx6CSdBBTseTLp6HHW378m/8rVBlsYNMRor8xGXlO8 ucEJTxLZReG7w606OzkDLM334J6cZKtZt9F0p1j5Wmx4fIOSorGGPiSzdlJwXE9it0m8fP2O pJDNmYzMHwsZTV+Aw4dBsIfotun3H3daCECjE+pn4Yetj27IAtZi+KxaoCNJLRmX/59lUmRo ifK/n/yHwoBHMeOzCKMtHOqnO7G2y3hML/+D5W95qZgxQXLnDFNAUVPE0Ojof6ilkOyHdlYL iT45xbCs4Af+XT2FvTERCToh1WOkR42RPkJDtIlvVTlJrXv3y6VAW0NTzhkYdMgtdMrSTFC6 rNvt4OxbdCImOLEIU9x5ot4vhvuYXFKcjBqiTssCFJcuoS4/N1bYgfnE447eJNZmOEZDt0ZL 9qiizIzgt3/ZuZbi/3mrDgrb99Rz6UloyYw9l3dGzr9tF4nbdb8IZSw6V/A8ftMao2eSzFtX UToeeDAvIji7rnXzkRhpdnh+pn1uZ5p1xWA3zZS82EJrWjFxpJaVdk4DMtCDEloKN0YXjTif VXevwhcjLcKYifxPfQrOdvoWph7pUQFKTgDfqCMBjapSsgpHDJrAAkyDaJt9zqzyRF2+U3BE c7GKJz2ZZrlNUiX5GHsG71HieFDKtEW3XnUQp7jyBWhzf7WZXieD9843KimPogEAFe/iFyNq b53bpLSoz0GCb2WSnSJreY7cA5bRVBmVMieg5EGLYarf1s2cFzN/teKnNvNjaQ+w/8K/goJl 1nhMnJlJK3X3iyacFjaNyw4NdsCn/9X9BoGAMDlBn7ws1BLXGplxP13m0IfceZ1+ep94+RzS vVZKcyMDu4QGDLW5nIQYYSk9N5ucxGihASvOSu5YWVlLsc5HFKRotK0LBHy8CQuDzassZdsq bOX0A6GE4EIQB5vDZqLZf/2lwGxsHERlfhcRUzNJtUPKkzg/JI1eSrgk7k6L9xVcUfPwT6T1 gC3BxYEpLSX8tZsq4eR3a3d9tWnCepzGEZeDlL317fuOHmI5HenzK9BTP2MIWLXWlTy9fjwf u5S1fz9bKAKkVsW4YpxF7FnkfA369f1/eEIyxQ8FjCTNw72VLo4ez+exclIrbFAyvlSvg7vA hCD/dxTOLOoPsL5EQdIdFZ8N7rdiqsZymvI8PA4AETm/ysorreKVENlORPT2iFQKb1CNpwon LU6s8kM5g3j0RcnboScgiZP+zjeJ3AMSf955JQKWIWu0lJxlw9LOcWaEjf254qTZtkKOU4ve 2fGiK3HjrVa50zDb3tqTCiRhLMD28tUtUAY1kIGKnSIhsHB2a060RhXxjI9EVZYwxBB5ORsN zU5LEZyP6iPo2xlicUrs7pAwO2d6MB1O3AdymflUEXcXxGiEzSVdjBjML7UulgB82VHYjVXu rqfzQ4JlNoskN7ZhkMPtYxN8pQPjuCdMiXEid3hEsiYd3X/SSSwmbegPALktDO+af7cRyT7S S1C+vdtL6D3KEb8ZkH955ayjdwtdfxPGICOrTyNMk/E8aEwtQxeAQSzFn0=
  • Ironport-hdrordr: A9a23:w1682auA+P8a0Xm1ZCyvHwKJ7skD+dV00zEX/kB9WHVpm62j5r 6TdZEgvyMc5wxhI03I9erwQJVoBEmsjKKdgrNhWotKPjOWxVdARbsKheCOr0yDakjDH6xmpM FdmsNFeaHN5DZB/LnHCcqDfeoI8Z2o9KipgKP51HdiTQZjbuVF4x1iAgiWVm1aLTM2f6bR1q Dy2iOKnVqdUEVSSN+6CD0kZoH41q72vaOjWAUBARE/7gmIkHeH1J7WeiLorys2Ynd32rEl/n HCkwvlooOZk9/+5CP9+gbonuRrcP2I8KowOCVEsKllSUSJtjqV
  • Ironport-phdr: A9a23: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 /DN
  • Ironport-sdr: CdGC1nYHi9OHDUmtvSCDlBbN+l/qsBNtxU6gPAuyKRMZQX34W5+dq3jvcFUtaJMiX8k52bGG3X inR3ZxO+jFnE3o5hRzfM5Fu5NvkVFv1nMQZyivlo1jkfv2X+4WdJ5xVHFVy1VS5H4GgQc7qNw3 qnwUgJO3tAoNMdN95LD9/zFgWYu06YX96WZeqSdgmy1oNSqxxu1THmPIl9CU9NySTG+6AMNeEw m3NlwMtTO5S7si+0lf57gC+FZVFNN2c9fgo0Xrh2rOb7DyF7cwO/304luspIkU865eLspo2uP9 BIeqzKV2pg4hzEukBhrXQYEJ

I believe the problem may be that your second polygon is oriented CW instead of CCW.

Sincerely,
Christopher

On Fri, Feb 4, 2022 at 8:44 AM Bob Bill <> wrote:
Dear Sebastien,

thanks for the quick reply. I changed the code as you asked. However the result is still the same. Does it work properly on your machine?

Best,
Bob

Il venerdì 4 febbraio 2022, 14:29:17 CET, Sebastien Loriot" ( via cgal-discuss Mailing List) <> ha scritto:


Replace

typedef CGAL::Simple_cartesian<double> K;

by

#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
typedef CGAL::Exact_predicates_exact_constructions_kernel K;

More details about why here:
https://www.cgal.org/FAQ.html#inexact_NT

Best,

Sebastien.


On 2/4/22 2:26 PM, Bob Bill ( via cgal-discuss Mailing
List) wrote:
> I'm trying to find the area of the intersection between a square and
> another polygon. My code so far is the following (adapted from here
> <https://stackoverflow.com/questions/10502672/compute-intersection-area-of-two-polygons-with-cgal>,

> I just changed the points):
>
> #include<CGAL/Boolean_set_operations_2.h>
> #include<CGAL/Polygon_2.h>
> #include<CGAL/Polygon_2_algorithms.h>
> #include<CGAL/Polygon_with_holes_2.h>
> #include<CGAL/Simple_cartesian.h>
> #include<iostream>
>
> typedef CGAL::Simple_cartesian<double> K;
> typedef K::Point_2 Point;
> typedef CGAL::Polygon_2<K> Polygon_2;
> typedef CGAL::Polygon_with_holes_2<K> Polygon_with_holes_2;
>
> int main() {
> const std::vector<Point> pts{{-1, -1}, {1, -1}, {1, 1}, {-1, 1}};
> const std::vector<Point> pts2{{0, 1}, {0, 2}, {2, 1}, {1, 0}};
>
> Polygon_2 poly1(pts.begin(), pts.end());
> Polygon_2 poly2(pts2.begin(), pts2.end());
> std::list<Polygon_with_holes_2> polyI;
>
> CGAL::intersection(poly1, poly2, std::back_inserter(polyI));
>
> double totalArea = 0;
> typedef std::list<Polygon_with_holes_2>::iterator LIT;
> for (LIT lit = polyI.begin(); lit != polyI.end(); lit++) {
> std::cout << *lit << '\n';
> totalArea += lit->outer_boundary().area();
> }
> std::cout << "TotalArea::" << totalArea;
> }
>
> It compiles just fine, but then when I run it, I got the following output:
> *3 0 1 1 1 0 1  0 *
> *TotalArea::0*
>
> meaning that two points are collinear and hence the area is 0. What is
> my mistake here? I'm honestly a bit puzzled by the result and I don't
> know how I am supposed to fix this.
>
>
> Best,
> Bob
>
>    
>
>    
>
>
>    Compute intersection area of two polygons with cgal
>
> Given the vertices of two convex polygons, what is the simplest way of
> computing the area of their intersection ...

>
> <https://stackoverflow.com/questions/10502672/compute-intersection-area-of-two-polygons-with-cgal>
>
>
>
> --
> You are currently subscribed to cgal-discuss.
> To unsubscribe or access the archives, go to
> https://sympa.inria.fr/sympa/info/cgal-discuss
>

--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss




--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://sympa.inria.fr/sympa/info/cgal-discuss




Archive powered by MHonArc 2.6.19+.

Top of Page