Треугольный сюжет без стрелы - PullRequest
1 голос
/ 18 июня 2019

Я моделирую движение частиц в MATLAB.Я использую quiver, чтобы узнать направление их движения.Однако мне бы хотелось иметь только наконечник стрелы без стержня.Я не могу этого достичь.

Я пытался использовать следующее,

quiver(x,y,vx,vy,'LineStyle','none','ShowArrowHead','on')

, чтобы избавиться от стебля, но стрелка тоже не появляется.Есть ли способ обойти это?

1 Ответ

2 голосов
/ 18 июня 2019

'LineStyle','none' не сработало, потому что стиль применяется как к стеблю, так и к голове, поэтому установка его на none скрывает оба.

Эту проблему можно решить, покопавшись в некоторых недокументированных свойствахQuiver объект.Изучая свойства объекта Quiver (используя struct(<handle to quiver plot>)), мы видим, что у колчана есть свойство NodeChildren и что он состоит из 4 элементов:

>> hq = quiver(x,y,u,v);
>> hq.NodeChildren
ans = 
  4×1 graphics array:

  ListOfPointsHighlight
  LineStrip
  LineStrip
  Marker

LineStripобъекты, которые вы видите выше, соответствуют сверху донизу хвостам и головам.Отсюда просто нужно скрыть хвосты через свойство Visible:

[x,y] = meshgrid(0:0.2:2,0:0.2:2);
u = cos(x).*y;
v = sin(x).*y;

figure();
hq = quiver(x,y,u,v);

pause(0.1); % this appears to help
hq.NodeChildren(2).Visible = 'off';

В результате:

enter image description here

Протестировано на R2019a.

...