需求:本人要生成如下的网络模型,因苦于没有找到合适的软件直接生成,只能借以matplotlib来完成。因为matplotlib并非三维建模的专家,因此用其生成的模型即使加了透明度,其当出现“面与面重叠”时,会叠加透明度数值!即:单个面的透明度是0.1;如果两个透明度是0.1的平面有重叠的区域,那么该重叠区域的透明度就线性增加到0.2!
模型包括如下内容:
- 的空间立方体网格模型;
- 100个观测点阵列;
- 1个由观测点所组成观测面;
- 可人为定义的“地下特殊单元”,用不同颜色表示;
本程序实现的细节说明:本程序不是直接一个块体一个块体的生成模型,而是分6步,每一步生成"所有块体"的一个子面:比如第一步生成所有块体的上表面,第二步生成所有块体的下表面,第三步生成所有块体的前表面,以此类推共6步完成。
优点:没有重叠面的产生!如果直接以块体为单位绘制,那么块体之间会有重叠的面,从而会导致透明度减弱!
实现效果如下:
图1:用matplotlib生成三维网格模型所能达到的最好效果图完整可直接使用程序在这儿:3dmodel.py
网友评论