📜  Python – Sympy Polygon.intersection() 方法

📅  最后修改于: 2022-05-13 01:55:42.413000             🧑  作者: Mango

Python – Sympy Polygon.intersection() 方法

在 Sympy 中,函数Polygon.intersection ()用于获取给定多边形和给定几何实体的交集。几何实体可以是点、线、多边形或其他几何图形。如果多边形和给定的几何实体在任何地方都没有相交,则相交可能为空。但如果存在交叉点,则可以包含单个点或完整的线段。

Syntax: Polygon.intersection(o)

Parameters: Geometry Entity

Returns: The list of Segments or Points of intersection.

示例 #1:

Python3
# import Point, Polygon
from sympy import Point, Polygon
  
# creating points using Point()
p1, p2, p3, p4 = map(Point, [(0, 0), (1, 0), (5, 1), (0, 1)])
p5, p6, p7 = map(Point, [(3, 2), (1, -1), (0, 2)])
  
# creating polygons using Polygon()
poly1 = Polygon(p1, p2, p3, p4)
poly2 = Polygon(p5, p6, p7)
  
# using intersection()
isIntersection = poly1.intersection(poly2)
  
print(isIntersection)


Python3
# import Point, Polygon
from sympy import Point, Polygon
  
# creating points using Point()
p1, p2, p3, p4 = map(Point, [(0, 0), (1, 0), (5, 1), (0, 1)])
  
# creating polygon using Polygon()
poly1 = Polygon(p1, p2, p3, p4)
  
# using intersection()
isIntersection = poly1.intersection(Line(p1, Point(3, 2)))
                                      
print(isIntersection)


输出:

[Point2D(1/3, 1), Point2D(2/3, 0), Point2D(9/5, 1/5), Point2D(7/3, 1)]

示例 #2:

Python3

# import Point, Polygon
from sympy import Point, Polygon
  
# creating points using Point()
p1, p2, p3, p4 = map(Point, [(0, 0), (1, 0), (5, 1), (0, 1)])
  
# creating polygon using Polygon()
poly1 = Polygon(p1, p2, p3, p4)
  
# using intersection()
isIntersection = poly1.intersection(Line(p1, Point(3, 2)))
                                      
print(isIntersection)

输出:

[Point2D(0, 0), Point2D(3/2, 1)]