制作线框多边形

2024-04-24 23:38:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想制作一些图表来帮助我正在辅导的微积分学生更好地可视化他们正在寻找的体积的实体。例如,一个问题是求三角形金字塔的体积。在

下面是一些生成金字塔边的工作代码,但是你不能分辨出一边在哪里结束,另一边从哪里开始。如何将其转换为线框,使实体更易于识别?或者,或者,我如何给表面涂上不同的颜色,以使图形更清晰可见?在

具体地说,我不明白如何才能制作三角形网格。或者,我想制作连接到每个点的线就足够了。在

import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection

fig = plot.figure()
ax = Axes3D(fig)

A=[0,0,0]
B=[1,1,0]
C=[0,1,1]
D=[0,1,0]

verts=[[A,B,C],
       [A,B,D],
       [A,D,C],
       [B,C,D]]

ax.add_collection3d(Poly3DCollection(verts))
ax.view_init(azim=-45)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z') 
plot.show()

结果图:

triangular pyramid visualization


Tags: fromimport实体plotasfig体积ax
1条回答
网友
1楼 · 发布于 2024-04-24 23:38:23

如果要显示形状的边,可以在创建Poly3DCollection时指定line width

Poly3DCollection(verts, lw=2)

enter image description here

另外,指定一些face transparency可能有助于可视化

^{pr2}$

enter image description here

也可以使用^{}属性为每个面指定不同的颜色

Poly3DCollection(verts, lw=2, facecolors=['r', 'g', 'b', 'k'])

enter image description here

相关问题 更多 >