You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在gnuplot中绘制3D向量?附曲面叠加向量失败问题

在Gnuplot中3D场景绘制向量的解决办法

Gnuplot的3D向量绘制(splot ... with vectors)需要指定6个数据列(或计算表达式),对应规则是:

  • 前3个:向量起点的x、y、z坐标
  • 后3个:向量的x、y、z分量(即终点坐标减去起点坐标)

你之前的代码里,向量绘制部分遗漏了using(可简写为u)关键字,这是导致向量无法显示的核心问题。

修正后的完整代码

set hidden3d
set xlabel "x"
set ylabel "y"
set zlabel "z"
set dgrid3d 10,10 qnorm 2
file = "surface.dat"

# 先绘制曲面,再叠加法向量
splot file u 1:2:3 with lines, \
      file u 1:2:3:($4-$1):($5-$2):($6-$3) with vectors lc rgb "red" lw 2

额外实用提示

  • 若法向量尺寸不合适,可给分量乘缩放系数调整,比如($4-$1)*0.1缩小向量,避免和曲面过度重叠
  • 可通过set style vector arrowhead size 0.05,20,60 filled自定义箭头的大小、角度和填充样式
  • 确认数据文件surface.dat确实包含6列有效数据:第1-3列为起点坐标,第4-6列为法向量终点坐标

内容的提问来源于stack exchange,提问作者boltz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 08:40:20