2014-05-12 19 views
2

我想在箭頭中出現箭頭,而不是任何一個極端,在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 

enter image description here

+3

我不知道誰downvoted這一點,但這不是一個愚蠢的問題。 – Bernhard

回答

5

正如安吉拉所指出的那樣:沒有選擇得到這個。但是,您可以創建一個函數爲您構建兩個箭頭並計算中間點。功能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:

enter image description here

+0

非常感謝。這個對我有用。不過,我需要稍微調整一下這個功能,因爲箭頭沒有出現在中間。 –

+0

正確,箭頭在中心。如果您需要一些靈活性,可以將函數簽名更改爲'middlearrow(from_x,from_y,to_x,to_y,r)= ...',其中'r'是放置箭頭的部分。 – Christoph

0

畫兩個箭頭,一個頭,一個沒有。

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

雖然這即興作品,但它使它非常乏味。我正在計算不同曲線上的切點,然後需要用箭頭連接它們以顯示轉換。圖像中顯示了一個示例。要繪製兩個箭頭,我需要計算兩點之間的第三個點。因此,每當箭頭線的漸變發生變化時,我都需要找到一個新的點等等。 無論如何,謝謝。 –