Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Intersect a polygon and a line

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Intersect a polygon and a line


Chronological Thread 
  • From: Sebastien Loriot <>
  • To:
  • Subject: Re: [cgal-discuss] Intersect a polygon and a line
  • Date: Wed, 30 Mar 2022 07:47:53 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23:ZZFN8aqAKIDp+qBTEWTsFu6d845eBmIrYxIvgKrLsJaIsI4StFCzt garIBmHaPyJY2amKdFwOYzl8BtUu5eBy9NgHVQ5qHwzFCxB+OPIVI+TRqvSF3PLf5ebFCqLz O1HN4KedJhsJpP4jk3wWlQ0hSAkjclkfpKlVKicfHkZqTZMEE/Nszo68wICqtMu0IDR7z+l4 4uo+ZWEYwf9glaYD0pNg069gEM31BjNkGhA1rAOTagjUIj2yhH5pLpGTU2AByOQrrt8RoZWd M6fpF2NxV41yj92Yj+TfhkXRWVRKlLaFVDmZnO7wMFOiDAazsA5+v5T2Pbx9S67hh3R9+2dx umhurSNUTcKN4vcx94kCSZlPx19fopf0r/udC3XXcy7lyUqclPpyvRqSV4sZMgWp7wxDmZJ+ vgVbjsKa3hvhcrsmOP9GrQq3J56apSxVG8ckikIITXxFvIhW5HEX+PP4fdX2T4xgoZFGvO2i 88xM2o+PUWQM0Yn1lE/Jbsnwvr3qnLEbzxilw2Iv6YW41HV5VkkuFTqGIONJobiqd9utk2Xr 2aD82XiCQwBL/SE2D+d+zStgPXOlGX1Quov+KaQ8/drhBiM3DVWBkBME1S8pva9hwi1XNc3x 1EoFjQGkLAC10WNXobHZkeHnVK4vV07QvBQOrhvgO2S8Zb87wGcD2kCazdObt06qcM7LQDGM HfZz7sF4hQ/4NWopWKhGqS89mztZHBERYMWTWpVEltfuoiLTJQb10qXFr5e/LiJYsoZ8AwcL hiPpSk6wqoJ1IsFiv/98lfAjDah4JPOS2bZBzk7vEr1sWuVh6b/P+REDGQ3C94ed+51qXHf5 xA5dzC2trxmMH10vHXlrB8xNL+o/e2ZFzbXnERiGZIsnxz0pSLzINAJvW0jdBkzWirhRdMPS B+D0e+2zM8DVEZGkYcqC25MI5hynfm5TYqNug78N4ITP8AZmPC7ENFGPBbMhQgBYWAjlqYwP ZrzTCpfJSdyNEiT9xLvH711+eZzmEgWnDqPLbimkUnP+efBPBa9FOZdWHPTP7tRxP7V8G39r YwDX+PUkE43eLOlMkHqHXs7dw9iwY4TXsCo9aS6t4erfmJbJY3WI6KImep6Id08xcy4VI7gp xmAZ6OR83Kn7VWvFOlAQikLhGrHUcktoHQlEzYrOFr0iXEvbZz+vqgafpozO7Ig8bU7n/JzS vAEfeSGA+hOGmyXoWRDMcGlodwwbgmviCKPIzGhP2oycptmcArDpY3pcw7pwy8RA3flrsA5u bChiljWTMNbFQRvBcrbcty1yFa1sSRPke5+RRqaLdxaeUGq+49vcnSjgvgyKsAKCBPC2jrKj 1bMUUlE/bHA+tZn/sPIiKaIq5aSP9F/RkcKTXPG6buWNDXB+jXxzIJFVtGOd2+PWW7x/pKke rwJnfzxNfswnGFKvZB5JLBlwP9s/NDovbJbkl1pEXiXPVSmDrRsfiuP0cVV7PYfw7ZYvU6pQ BvK9IQAf7qOP8zhHRgaIw98NraP0vQdmz/z6/UpIRWluHUmouLfCUgCbQORjCF9LaduNN93y +kWvsNLuRe0jQAnM4rbgy0IpX6AKGcMD/cuup0AWtS5jwMqzhRde8WZBHKspp6IbNpIPw8hJ TrN3PjOgLFVx0zjdXsvFCiSgbAM28xW4B0ankUfI1mpm8begqNl1hNm9zlqHB9eyQ9K0r4uN 2VmX6GvyX5iI9u1aAl/s2GQ98VpARSY/gnu0QJMmjCDCUavUWPJISs2PuPlEIX1NY5DVmAzw V1a4D+NvfXWkAXZ0S47WEojoPvmJTC03hOXg9ipRqxpALFjCQcIQcaSia4gpB7uAMd3j0rCz QWvECCcdoWjXRMtT2YH50V2GFjepN1o5ICPfB25wJ40IA==
  • Ironport-hdrordr: A9a23:U4kcx6BwrgpKyTTlHemP55DYdb4zR+YMi2TDpHoBLyC9Ffbo6/ xG/c5rqCMc7Qx6ZJhOo6HjBEDtewKmyXcx2/hqAV7AZniChILLFvAA0WKK+VSJcE3DH6xmpN 9dmsBFaeEYZmIK6voSjjPIaurIjOP3lJxARt2z856ud2xXgm1bgDuRwzz0LnFL
  • Ironport-phdr: A9a23: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 0RwhQx5buAgsjzr5gVvTmc=
  • Ironport-sdr: 04t7zSdtgeMAcxeX6ZiN7proQOhtx4LX3abqxN6qlhaFG+bTa66SDVsO/NthR7MZbuR5+7uKL0 cMw5fq7T5RQLqxFb82AaQ0MQrqB1S9ayJkg4/+10EKR7QV+tpxxp4wktqwqxLpx1y+tagOUgBB 6d1Qc7pnhuxFImrezfvQ8aJyzEO8aH1AV8tUtiCU6SLzxo2e5x2jVCU0Ms0RnMS+rQTPLLVVWi 4J2TXDYnJ6ANXlQyHMStSVKP8z40U/1V96w8jpv7uNXxFl1WQv4zc9oxMDUpiyHNVFqDYrjTAT XotI6oOBF/Rlgl1083Cu2sA5

I don't think there is anything for segment vs polygon.
The simplest solution is probably to use the following
package:
https://doc.cgal.org/latest/Surface_sweep_2/
providing CGAL::compute_intersection_points() and to
handle your polygon as a set of segments.

Obviously, you will get all the polygon vertices as
intersection points and you will need some extra checks
for cases when the segment is intersecting at an endpoint
or is entirely on the polygon boundary. Also if you need
inside/out for the segment, you'll have to use the function
bounded_side() on one endpoint of the segment:
https://doc.cgal.org/latest/Polygon/classCGAL_1_1Polygon__2.html#aff9f5e227e90bb285c7b3fbd8cb23369


HTH,

Sebastien.

On 3/29/22 18:25, Bob Bill ( via cgal-discuss Mailing List) wrote:
Dear all,

I've found many questions here and in the web about how to intersect a polygon and a line. Unfortunately, none of them can handle the case where one has a random polygon and a line which is totally contained in the polygon.

In my case, I have a rectangle which is a bit streched and rotated, which I can see of course as a polygon, and a bunch of consecutive segments that intersect it. The classic CGAL::intersection() <https://doc.cgal.org/latest/Kernel_23/group__intersection__linear__grp.html#gade00253914ac774cce3d2031c07d74fe> only covers the case where I have an *Iso_Rectangle*, which I don't have right now.

How can I compute their intersection in the present case? Any hint is really appreciated.


Best regards,
Bob

--
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