这是我的问题的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
上面的代码创建下图:
您可以轻松地看到没有一个箭头与箭头的尾部正确对齐。经过对该问题的一些研究,我发现其原因是轴的长度不同(X比Y长两倍)。因此,如果我将两个轴都设置为相同的限制,问题就会消失:
但是在我要制作的图中(比本示例要复杂得多),我需要使轴具有不同的限制。
有什么办法解决这个问题吗?
p.s:使用“标准化”单位我看不到此问题,但是为箭头设置正确的位置很麻烦...
我正在使用MatLab R2017a。