Как получить векторные заголовки с вершиной как T и нижним концом как стрелку с gnuplot - PullRequest
1 голос
/ 31 марта 2019

Я хочу создать векторные головы на моем графике с T-образной головкой в ​​верхней части и стрелкой в ​​нижней части.

1 Ответ

0 голосов
/ 31 марта 2019

Если вы прочитаете справку gnuplot

set arrow <tag> {nohead | head | backhead | heads}
                       {size <headlength>,<headangle>{,<backangle>}}

, вы подумаете, что это легко, но я не получаю ожидаемого результата ни со стрелкой 1, ни со стрелкой 2. Я не знаю, что с этим не такМожет быть, кто-то может объяснить.Не очень хороший обходной путь - разделить стрелку на две стрелки 3 и 4.

### different front- and backheads for arrows
reset session

set arrow 1 from -9,5 to -9,-5 heads size 1,45,90 
set arrow 2 from -6,5 to -6,-5 heads size 1,90,45

set arrow 3 from -3,5 to -3,0 backhead size 1,90
set arrow 4 from -3,0 to -3,-5 head size 1,45

set arrow 5 from 0,5 to 0,-5 heads size 1,45,90 empty
set arrow 6 from 2,5 to 2,-5 heads size 1,45,60 filled

x0=8; y0=5
x1=4; y1=-5
set arrow 7 from x0,y0 to x1,y1 backhead size 1,135
set arrow 8 from x0,y0 to x1,y1 head size 1,45

plot x
### end of code

Редактировать:

На самом деле, описание немного вводит в заблуждение:backangle - это не угол backhead, а угол в затылке (см. Стрелки 5 и 6).И, похоже, не предвидится, что стрелка имеет две разные головки.Либо у него нет головы, одна спереди или одна сзади или две одинаковые с обеих сторон.Если вы отметите gnuplot arrow demo , вы не найдете стрелок с разными головками спереди и сзади.

В качестве обходного пути, возможно, даже проще, чем разделить стрелку (3 и 4), построите вторуюстрелки (7 и 8) друг над другом, одна с задней головкой и одна с (передней) головой.

Результат:

enter image description here

...