SciPy - Không gian

Các scipy.spatial package có thể tính toán Tam giác, Sơ đồ Voronoi và Lồi lồi của một tập hợp các điểm, bằng cách tận dụng Qhull library. Hơn nữa, nó chứaKDTree implementations cho các truy vấn điểm lân cận gần nhất và các tiện ích để tính toán khoảng cách trong các số liệu khác nhau.

Các tam giác Delaunay

Hãy để chúng tôi hiểu Delaunay Triangulation là gì và cách chúng được sử dụng trong SciPy.

Delaunay Tam giác là gì?

Trong toán học và hình học tính toán, một tam giác Delaunay cho một tập hợp nhất định P các điểm rời rạc trong một mặt phẳng là một tam giác DT(P) đến nỗi không có ích lợi gì P nằm trong đường tròn ngoại tiếp tam giác bất kỳ trong DT (P).

Chúng ta có thể tính toán tương tự thông qua SciPy. Chúng ta hãy xem xét ví dụ sau.

from scipy.spatial import Delaunay
points = np.array([[0, 4], [2, 1.1], [1, 3], [1, 2]])
tri = Delaunay(points)
import matplotlib.pyplot as plt
plt.triplot(points[:,0], points[:,1], tri.simplices.copy())
plt.plot(points[:,0], points[:,1], 'o')
plt.show()

Chương trình trên sẽ tạo ra kết quả sau.

Điểm Coplanar

Hãy để chúng tôi hiểu điểm Coplanar là gì và cách chúng được sử dụng trong SciPy.

Điểm Coplanar là gì?

Điểm đồng phẳng là ba hoặc nhiều điểm nằm trong cùng một mặt phẳng. Nhớ lại rằng mặt phẳng là một mặt phẳng, mở rộng không kết thúc theo mọi hướng. Nó thường được thể hiện trong sách giáo khoa toán dưới dạng hình bốn cạnh.

Hãy để chúng tôi xem làm thế nào chúng tôi có thể tìm thấy điều này bằng SciPy. Chúng ta hãy xem xét ví dụ sau.

from scipy.spatial import Delaunay
points = np.array([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]])
tri = Delaunay(points)
print tri.coplanar

Chương trình trên sẽ tạo ra kết quả sau.

array([[4, 0, 3]], dtype = int32)

Điều này có nghĩa là điểm 4 nằm gần tam giác 0 và đỉnh 3, nhưng không được bao gồm trong tam giác.

Vỏ lồi

Hãy để chúng tôi hiểu vỏ lồi là gì và cách chúng được sử dụng trong SciPy.

Convex Hulls là gì?

Trong toán học, convex hull hoặc là convex envelope của một tập hợp các điểm X trong mặt phẳng Euclide hoặc trong không gian Euclid (hay nói chung là trong không gian afin trên các số thực) là nhỏ nhất convex set chứa X.

Chúng ta hãy xem xét ví dụ sau để hiểu nó một cách chi tiết.

from scipy.spatial import ConvexHull
points = np.random.rand(10, 2) # 30 random points in 2-D
hull = ConvexHull(points)
import matplotlib.pyplot as plt
plt.plot(points[:,0], points[:,1], 'o')
for simplex in hull.simplices:
plt.plot(points[simplex,0], points[simplex,1], 'k-')
plt.show()

Chương trình trên sẽ tạo ra kết quả sau.