Gnuplot绘制3D多边形不显示问题及三角网格绘制需求
解决Gnuplot绘制3D三角网格的问题
1. 修复当前单个三角形的显示问题
你遇到的All points z value undefined提示来自splot 1/0 notitle——这个命令确实没有任何有效数据点,但这不是多边形不显示的核心原因。set object polygon在3D视图下的渲染兼容性较差,更可靠的方式是直接用splot命令绘制:
修改后的脚本:
set xrange [ 36.00000 : 38.30000 ] set yrange [ 37.9 : 38.40000 ] set zrange [ -23635.4 : 1000.00000 ] set view 69,74 # 用inline数据直接绘制单个三角形 splot '-' with polygon fillstyle transparent solid 0.5 notitle 38.204, 38.3317, 0 38.1886, 38.3191, 0 38.2011, 38.3339, -1969.62 38.204, 38.3317, 0 # 重复首点闭合三角形 e
2. 批量绘制三角网格
如果要绘制一系列三角网格,建议把所有三角形顶点整理到文本文件中,格式规则:
- 每个三角形的3个顶点坐标依次排列
- 不同三角形之间用空行分隔
示例数据文件triangles.dat:
38.204, 38.3317, 0 38.1886, 38.3191, 0 38.2011, 38.3339, -1969.62 37.5, 38.0, -5000 37.6, 38.1, -6000 37.4, 38.2, -5500
对应的绘制脚本:
set xrange [ 36.00000 : 38.30000 ] set yrange [ 37.9 : 38.40000 ] set zrange [ -23635.4 : 1000.00000 ] set view 69,74 set style fill transparent solid 0.5 # 统一设置填充透明度 # 读取数据文件绘制所有三角网格 splot 'triangles.dat' with polygon notitle
3. 关键注意事项
- 用
with polygon时,gnuplot会自动识别空行分隔的独立多边形,每个三角形可通过重复首点闭合,也可依赖gnuplot自动闭合 - 若追求更高效的渲染,可改用
with triangles样式,无需重复首点,直接用3个顶点定义一个三角形 - 确保使用Gnuplot 5.0及以上版本,对3D多边形的支持更稳定
内容的提问来源于stack exchange,提问作者user24979829
相关产品推荐
相关产品推荐

