Вот MCVE моей проблемы:
ax = axes('XLim',[0 20],'YLim',[0 10]);
arrStart = [5 5];
arrLength = 3;
arrDir = pi/4:pi/3:2*pi;
arrEnd = [cos(arrDir)*arrLength+arrStart(1)
sin(arrDir)*arrLength+arrStart(2)];
for k = 1:size(arrEnd,2)
arr = annotation('arrow',...
'X',[arrStart(1) arrEnd(1,k)],...
'Y',[arrStart(2) arrEnd(2,k)]);
arr.Parent = ax;
end
Приведенный выше код создает следующий рисунок:
![arrows](https://i.stack.imgur.com/p0GYV.png)
Вылегко увидеть, что ни одна из наконечников стрел не выровнена правильно с хвостом.После некоторых исследований этой проблемы я обнаружил, что причина в разной длине осей (X вдвое длиннее Y).Поэтому, если я устанавливаю обе оси в одинаковые пределы, проблема исчезает:
![arrows-2](https://i.stack.imgur.com/15kIs.png)
Но на рисунке, который я делаю, это гораздо сложнее, чемВ этом примере мне нужно, чтобы оси имели разные пределы.
Есть идеи, как это решить?
ps: используя «нормализованные» единицы, я не вижу этой проблемы, но задаюправильное расположение стрелок громоздко ...
Я использую MatLab R2017a.