Я хотел бы пересечь две фигуры, возвращая перекрытие между ними. Это должно включать, где перекрытие является довольно сложной формой (то есть не просто треугольник). В конечном счете, я хочу сделать это в 3D, но я сталкиваюсь с той же проблемой, даже когда я упрощаю это до 2D, что я не могу получить результирующую форму обратно, поскольку она не соответствует ни одному из базовых c "is_foo "шаблонные функции для CGAL :: Object.
Код ниже. Обратите внимание, что два используемых треугольника должны возвращать неправильный четырехугольник ((0,75, 0,0), (0,25, 0,0), (0,0, 1,0), (0,8, 0,2))
from CGAL.CGAL_Kernel import Point_2
from CGAL.CGAL_Kernel import Triangle_2
import CGAL.CGAL_Kernel as CGAL_Kernel
tri1=Triangle_2( *[Point_2(*acoord) for acoord in [[0,0],[1,0],[0,1]] ] )
tri2=Triangle_2( *[Point_2(*acoord) for acoord in [[1,1],[0.5,-1],[0,1]] ] )
intersection=CGAL_Kernel.intersection(tri1,tri2)
print(intersection.empty()) ### FALSE
print(intersection.is_Point_2()) ### FALSE
print(intersection.is_Triangle_2()) ### FALSE
print(intersection.is_Segment_2()) ### FALSE
print(intersection.is_Line_2()) ### FALSE
print(intersection.is_Ray_2()) ### FALSE
Есть ли способ вытащить четырехугольник, который я не понимаю? Я подхожу к этому неправильно? Заранее спасибо