如何在gnuplot中获得中间箭头? 我想在GuuTrice中画一个箭头,箭头出现在箭头的中间,而不是两个极端。尝试了middlehead选项,但似乎不起作用

如何在gnuplot中获得中间箭头? 我想在GuuTrice中画一个箭头,箭头出现在箭头的中间,而不是两个极端。尝试了middlehead选项,但似乎不起作用,gnuplot,Gnuplot,这是我用来创建下图的脚本 set style arrow 1 front head filled size screen 0.008,6 lt 1 lw 1 set arrow from 0.4750,-0.3592 to 1.05767,0.4179 as 1 画两个箭头,一个有头,一个没有头 ----> + ----- = ---->----- 正如安德拉斯已经指出的那样:没有任何选择可以做到这一点。但是,您可以创建一个函数,用于为您构建两个箭头并计算中间点。函数middl

这是我用来创建下图的脚本

set style arrow 1 front head filled size screen 0.008,6 lt 1 lw 1
set arrow from  0.4750,-0.3592 to 1.05767,0.4179 as 1

画两个箭头,一个有头,一个没有头

----> + ----- = ---->-----

正如安德拉斯已经指出的那样:没有任何选择可以做到这一点。但是,您可以创建一个函数,用于为您构建两个箭头并计算中间点。函数
middlearrow
构建一个包含两个箭头定义的字符串,然后必须使用
eval
处理该字符串:

set style arrow 1 front head filled size screen 0.03,15 lt 1 lw 1
middlearrow(from_x, from_y, to_x, to_y) = \
        sprintf('set arrow from %f,%f to %f,%f as 1 nohead;', 0.5*(from_x + to_x), 0.5*(from_y + to_y), to_x, to_y).\
        sprintf('set arrow from %f,%f to %f,%f as 1', from_x, from_y, 0.5*(from_x + to_x), 0.5*(from_y + to_y)) 

eval(middlearrow(0.1,0.1,0.9,0.9))

set xrange [0:1]
set yrange [0:1]

plot 0
结果见4.6.4:


我不知道是谁否决了这个问题,但这不是一个愚蠢的问题。尽管这个即兴创作很有效,但却让它变得相当乏味。我在计算不同曲线的切点,然后需要用箭头连接它们以显示过渡。图中显示了一个示例。要画两个箭头,我需要计算两点之间的第三个点。因此,每次箭头线的梯度改变时,我都需要找到一个新的点等等。谢谢你,非常感谢。它对我有用。不过,我需要调整一下功能,因为箭头并没有正好出现在中间。如果需要一些灵活性,可以将函数签名更改为
middlearrow(从x,从y,到x,到y,r)=……
,其中
r
是箭头尖端所在的分数。