使用Gnuplot绘制带角度标识的简单多边形
嘿,作为同样在学业绘图里折腾过Gnuplot的过来人,完全懂你新手阶段想复刻图形的头疼!针对你要做的带向量标注(u、v、w)和角度标注的多边形,用vectors和lines确实是核心思路,但我可以给你几个让操作更简便的小技巧,附个示例代码你直接改坐标就能用:
一、先搞定基础多边形
先把多边形的边画出来,直接用plot的lines样式就行,要么直接在命令里写顶点坐标,要么把坐标存成数据文件调用,后者适合复杂图形。
二、向量标注:
vectors+set label组合拳 用vectors画箭头没问题,但标注字母不用手动算位置,直接取向量中点放标签就行,还能微调偏移让位置更顺眼:
- 先定义向量的起点和终点,用
vector from 起点坐标 to 终点坐标 with arrows画出箭头 - 用
set label "u" at (起点x+终点x)/2, (起点y+终点y)/2把字母放在向量中点,加个offset参数(比如offset 0,-0.1)能避开箭头,更美观。
三、角度标注:用
set object arc画弧 Gnuplot没有直接的角度标注工具,但用圆弧模拟很方便:
- 确定角度的顶点,比如顶点O,两条边是OA和OB
- 用
set object arc from 弧起点坐标 to 弧终点坐标 center O_x,O_y画一段小圆弧,调整弧起点终点的坐标就能控制弧的半径和范围 - 再用
set label把角度符号/数值放在弧旁边就行。
给你个完整的示例代码,你替换成自己的顶点坐标就能用:
# 先设置全局样式,避免重复调参数 set style line 1 lw 2 lc rgb "black" # 多边形边的粗细和颜色 set style arrow 1 lw 2 lc rgb "black" head filled size 0.05,20,60 # 向量箭头样式 # 定义你的多边形顶点坐标(替换成你自己的数值) P1_x = 0; P1_y = 0 P2_x = 3; P2_y = 0 P3_x = 4; P3_y = 2 P4_x = 1; P4_y = 3 # 绘制多边形和向量 plot [0:4.5] [0:3.5] \ (P1_x,P1_y) -- (P2_x,P2_y) -- (P3_x,P3_y) -- (P4_x,P4_y) -- cycle with lines ls 1, \ # 画向量u(P1到P2) vector from P1_x,P1_y to P2_x,P2_y with arrows ls 1, \ # 画向量v(P2到P3) vector from P2_x,P2_y to P3_x,P3_y with arrows ls 1, \ # 画向量w(P3到P4) vector from P3_x,P3_y to P4_x,P4_y with arrows ls 1 # 添加向量标注,微调偏移避开箭头 set label "u" at (P1_x+P2_x)/2, (P1_y+P2_y)/2 offset 0,-0.1 set label "v" at (P2_x+P3_x)/2, (P2_y+P3_y)/2 offset 0.1,0 set label "w" at (P3_x+P4_x)/2, (P3_y+P4_y)/2 offset -0.1,0 # 添加角度标注(比如P2点的角) # 画一段小圆弧,半径可以通过调整from/to的坐标控制 set object 1 arc from P2_x+0.3,P2_y to P2_x+0.2,P2_y+0.3 center P2_x,P2_y lw 1 lc rgb "blue" set label "θ" at P2_x+0.4,P2_y+0.2 # 刷新绘图 replot
最后给你俩小提示:
- 如果顶点多,把坐标存成txt文件(每行一个x y),用
plot 'vertices.txt' with lines ls 1更省心 - 标注位置不满意的话,多调调
offset的数值,正负对应不同方向的偏移
内容的提问来源于stack exchange,提问作者Matti
相关产品推荐
相关产品推荐

