Berechnen und Anzeigen einer konvexen Hülle in Python
Ein konvexes Objekt ist ein Objekt, das keinen Innenwinkel größer als 180 Grad hat. Hull ist der äußere Teil des Objekts.
Somit bedeutet die konvexe Hülle die Grenze um die Form des konvexen Objekts. In diesem Tutorial lernen Sie, eine konvexe Hülle einer zufälligen Menge von Punkten in Python zu berechnen und anzuzeigen.
Berechnen und zeigen Sie eine konvexe Hülle in Python
Eine konvexe Hülle einer Menge von Punkten ist die Grenze des kleinsten konvexen Polygons, das aus allen Punkten einer Menge besteht.
Sehen wir uns ein Beispiel einer konvexen Hülle einer Menge von Punkten an.
Angesichts dieser Punkte:
Die konvexe Hülle ist:
Das Folgende ist eine einfache Implementierung zum Anzeigen einer konvexen Hülle aus zufälligen Punkten in Python.
Importieren der erforderlichen Module:
from scipy.spatial import ConvexHull
import matplotlib.pyplot as plt
import numpy as np
Verwenden von zufälligen Punkten in 2-D:
points = np.random.randint(0, 10, size=(15, 2))
Für eine konvexe Hülle gilt:
hull = ConvexHull(points)
Lassen Sie uns nun die Punkte und die konvexe Hülle darstellen.
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(10, 3))
for ax in (ax1, ax2):
ax.plot(points[:, 0], points[:, 1], ".", color="k")
if ax == ax1:
ax.set_title("Given points")
else:
ax.set_title("Convex hull")
for simplex in hull.simplices:
ax.plot(points[simplex, 0], points[simplex, 1], "c")
ax.plot(
points[hull.vertices, 0],
points[hull.vertices, 1],
"o",
mec="r",
color="none",
lw=1,
markersize=10,
)
ax.set_xticks(range(10))
ax.set_yticks(range(10))
plt.show()
Ausgang:
Jetzt sollten Sie wissen, wie man in Python einen Satz zufälliger Punkte generiert und eine konvexe Hülle anzeigt. Wir hoffen, dass Sie dieses Tutorial hilfreich finden.