Computer >> Máy Tính >  >> Lập trình >> Python

Biểu diễn voxels bằng matplotlib

Trong đồ họa máy tính 3D, một voxel đại diện cho một giá trị trên một lưới thông thường trong không gian ba chiều. Có thể nói voxel là một điểm ảnh 3D tương đương với một pixel được sử dụng trong 2D. Pixel là hình vuông cạnh của hình ảnh 2D có vị trí trong lưới 2D và một giá trị màu duy nhất, trong khi voxel là hình khối bên trong mô hình 3D với vị trí bên trong lưới 3D và một giá trị màu duy nhất.

Để biểu diễn voxels bằng matplotlib, chúng ta có thể thực hiện các bước sau -

Các bước

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô con.

  • Tạo các điểm dữ liệu lựa chọn ngẫu nhiên từ 0 đến 1.

  • Tạo một hình mới hoặc kích hoạt một hình hiện có.

  • Lấy các trục hiện tại, tạo một trục nếu cần, với chiếu ='3d' .

  • Vẽ một tập hợp các voxels được lấp đầy, sử dụng voxels () phương pháp.

  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

Ví dụ

import numpy as np
import matplotlib.pyplot as plt

# Set the figure size
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# Random data points between 0 and 1
data = np.random.choice([0, 1], size=(5, 7, 9), p=[0.65, 0.35])

# Create a new figure
fig = plt.figure()

# Axis with 3D projection
ax = fig.gca(projection='3d')

# Plot the voxels
ax.voxels(data, edgecolor="k", facecolors='green')

# Display the plot
plt.show()

Đầu ra

Nó sẽ tạo ra kết quả sau -

Biểu diễn voxels bằng matplotlib