Python–Sympy 多边形. distance()方法

原文:https://www . geesforgeks . org/python-sympy-polygon-distance-method/

在 Sympy 中,函数 Polygon.distance() 用来返回给定多边形与 o 之间的最短距离,如果 o 是一个点,那么给定多边形不需要是凸的。但是如果 o 是另一个多边形,那么给定的多边形和 o 一定是凸的。

Syntax: Polygon.distance(o)

Parameters:
 o:Point or Polygon

Returns: the shortest distance between the given polygon and o.

示例#1:

Python 3

# import sympy import Point, Polygon
from sympy import Point, Polygon

# 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 distance()
shortestDistance = poly.distance(Point(3, 5))

print(shortestDistance)

输出:

sqrt(13)

例 2:

Python 3

# import sympy import Point, Polygon, RegularPolygon
from sympy import Point, Polygon, RegularPolygon

# creating points using Point()
p1, p2 = map(Point, [(0, 0), (7, 5)])

# creating polygon using Polygon() and RegularPolygon()
poly = Polygon(*RegularPolygon(p1, 1, 3).vertices)

# using distance()
shortestDistance = poly.distance(p2)

print(shortestDistance)

输出:

sqrt(61)