我有一个立方体,我知道它的顶点的x,y,z位置,我还有一个数组将面与顶点联系起来(这些面由2个三角形组成):
import numpy as np
x = np.array([ 0.16257299, -0.370805 , -1.09232295, 1.62570095,
-1.62570095, 1.09232295, 0.370805 , -0.16257299])
y = np.array([-1.71022499, -0.81153202, -0.52910602, -0.36958599,
0.369587 , 0.52910602, 0.81153202, 1.71022499])
z = np.array([ 0.22068501, -1.48456001, 1.23566902, 0.469576 ,
-0.469576 , -1.23566902, 1.48456001, -0.22068501])
faces = ([[3, 0, 1],[6, 7, 4],[3, 6, 2],[0, 2, 4],[1, 4, 7],[6, 3, 5],
[1, 5, 3],[4, 2, 6],[2, 0, 3],[4, 1, 0],[7, 5, 1],[5, 7, 6]])
我设法用以下内容绘制立方体的三维可视化:
^{pr2}$但是我想要的是绘制立方体在Y轴上的二维投影,我尝试了以下方法:
valuesOfFaces = [5,10,9,1,2,3,7,8]
import matplotlib.pyplot as plt
%matplotlib notebook
fig, ax = plt.subplots()
ax.tricontourf(x,z,valuesOfFaces,triangles = faces,zdir='y',levels=np.sort(valuesOfFaces))
但结果如下:
我想要的是能够给每一张脸涂上一个恒定的值,而且不可见的脸不会出现。matplotlib可以吗?如果是,你建议我怎么做?在
你很幸运我正好回答了这个问题,Plot 3D convex closed regions in matplot lib, 最近。方法可能非常相似。首先将三角形简化为立方体的面(这在链接的答案中完成),然后只需移除隐藏的面。这里的方法是沿着观察方向按质心对面进行排序,然后删除最后3个面。 最后通过去除y维来实现二维投影。在
相关问题 更多 >
编程相关推荐