You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将金字塔二维数组在三维空间中可视化呈现?

修改说明

你当前的代码已经正确生成了金字塔高度的二维数组,仅缺少坐标网格生成和三维曲面绘制的核心逻辑,补充对应代码即可实现和Matlab mesh() 等价的效果。另外你现有的三重循环效率极低,可以用numpy向量化操作替换,运行速度提升明显。

完整可运行代码

import numpy as np
import matplotlib.pyplot as plt

# 配置金字塔数组尺寸
size = 512
Pyramid = np.zeros((size, size))

# 检查是否为正方形数组
if Pyramid.shape[0] != Pyramid.shape[1]:
    print("ERROR: 'Not square'")
    exit()

# 生成XY坐标网格
x = np.arange(size)
y = np.arange(size)
X, Y = np.meshgrid(x, y)

# 向量化计算每个点的高度,和原三重循环结果完全一致
Pyramid = np.minimum.reduce([X, Y, size - 1 - X, size - 1 - Y])

# 三维绘图
fig = plt.figure(figsize=(10, 10))
ax = plt.axes(projection="3d")

# 和Matlab mesh默认线框效果一致的实现,注释下一行改用面渲染
ax.plot_wireframe(X, Y, Pyramid, rstride=8, cstride=8, color="k")

# 带颜色填充的曲面效果实现
# ax.plot_surface(X, Y, Pyramid, cmap="viridis", edgecolor="none")

# 坐标轴标注
ax.set_xlabel("X轴")
ax.set_ylabel("Y轴")
ax.set_zlabel("高度")

plt.show()

参数说明

  • rstride、cstride:控制线框/曲面的采样步长,值越大线越稀疏,避免512分辨率下线条太密无法看清
  • 如果你要保留原有三重循环的实现逻辑,只需要在现有代码基础上补充np.meshgrid生成坐标、调用绘图方法的部分即可,原有高度计算逻辑是正确的。

内容的提问来源于stack exchange,提问作者0Pepega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 22:45:03