【问题标题】:How to generate "triangles" parameter of Mayavi triangular_mesh using triangles which are known vertices coordinates如何使用已知顶点坐标的三角形生成 Mayavi triangular_mesh 的“三角形”参数
【发布时间】:2019-12-17 12:23:44
【问题描述】:

我有构成球面的三角形。我想使用 mayavi triangular_mesh 函数绘制表面。该函数具有“triangles”参数,它是三元组(或数组)列表,列出每个三角形中的顶点。我知道顶点坐标所有三角形。但是我不知道如何生成这个参数。

我还尝试使用 matplotlib 三角函数 (triangles = matplotlib.tri.Triangulation(longitudes, latitudes).triangles) 生成“三角形”参数。然而,在表面的某些地方,三角形连接不正确(见图1)。

图 1. 不正确的三角形连接

如何使用已知顶点坐标的三角形生成 Mayavi triangular_mesh 的“三角形”参数

数据格式

x, yz 是三角形的笛卡尔坐标。例如; (x[0], y[0], z[0]), (x[1], y[1], z[1])(x[2], y[2], z[2]) 是三角形的顶点。下一个三角形有(x[3], y[3], z[3]), (x[4], y[4], z[4])(x[5], y[5], z[5]) 顶点坐标。

【问题讨论】:

    标签: python-3.x mayavi


    【解决方案1】:

    您只需使用索引将它们放在一起。 看看triangles的形状。 每个三角形使用三个索引 在xyz

    import numpy as np
    import mayavi.mlab as mlab
    
    x = np.random.rand(30)
    y = np.random.rand(30)
    z = np.random.rand(30)
    s = np.random.rand(30)
    
    triangles = np.random.randint(0, 30, size=(10, 3))
    print(triangles)
    
    mlab.triangular_mesh(x, y, z, triangles, scalars=s)    
    mlab.orientation_axes()
    mlab.show()
    

    【讨论】:

      猜你喜欢
      • 2017-09-09
      • 2023-03-07
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      相关资源
      最近更新 更多