Python – Método Sympy Polygon.cut_section()

En Sympy, la función Polygon.cut_section() se utiliza para obtener una tupla de dos segmentos de polígono (dos partes del polígono) que se encuentran por encima y por debajo de la línea de intersección, respectivamente. Simplemente devuelve las dos partes del polígono intersecadas por la línea. Devuelve Ninguno cuando no existe ningún polígono por encima o por debajo de la línea.

Syntax: Polygon.cut_section(line)

Returns: upper_polygon, lower_polygon: Polygon objects or None
 upper_polygon: is the polygon that lies above the given line
 lower_polygon: is the polygon that lies below the given line
 None: when no polygon exists above the line or below the line
 
Raises: 
 ValueError: When the line does not intersect the polygon

Ejemplo 1:

Python3

# import sympy import Point, Polygon, Line
from sympy import Point, Polygon, Line
  
# creating points using Point()
p1, p2, p3, p4 = map(Point, [(0, 2), (0, 0), (1, 0), (1, 2)])
  
# creating polygon using Polygon()
poly = Polygon(p1, p2, p3, p4)
  
# using cut_section()
cutSection = poly.cut_section(Line((0, 1), slope = 0))
  
print(cutSection)

Producción:

(Polygon(Point2D(0, 2), Point2D(0, 1), Point2D(1, 1), Point2D(1, 2)), 
 Polygon(Point2D(0, 1), Point2D(0, 0), Point2D(1, 0), Point2D(1, 1)))

Ejemplo #2:

Python3

# import sympy import Point, Polygon, Line
from sympy import Point, Polygon, Line
  
# creating points using Point()
p1, p2, p3, p4 = map(Point, [(0, 2), (0, 0), (1, 0), (1, 2)])
  
# creating polygon using Polygon()
poly = Polygon(p1, p2, p3, p4)
  
# using cut_section()
cutSection = poly.cut_section(Line((0, 1), slope = 1))
  
print(cutSection)

Producción:

(Triangle(Point2D(0, 2), Point2D(0, 1), Point2D(1, 2)), 
 Polygon(Point2D(0, 1), Point2D(0, 0), Point2D(1, 0), Point2D(1, 2)))

Publicación traducida automáticamente

Artículo escrito por ravikishor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *