始终以用户在MATLAB中测量的指定角度生成直线
考虑下面的简单代码,它在MATLAB中生成一条向下倾斜的直线始终以用户在MATLAB中测量的指定角度生成直线,matlab,matlab-figure,aspect-ratio,Matlab,Matlab Figure,Aspect Ratio,考虑下面的简单代码,它在MATLAB中生成一条向下倾斜的直线 clear, clc, close all t = 0:0.1:1; y = -t+1; plot(t,y) ax = gca 这是一条坡度为-1的直线,因此水平轴与直线之间的(锐角)角度为45度。但当你在显示器上用量角器测量时,情况就不是这样了 在不改变x轴和y轴上显示的值的范围或图形窗口的高度的情况下,如果我将量角器举到屏幕上,如何确保从水平轴到直线的测量角度为45度 我当前的方法是更改图形窗口的宽度。在图形窗口无限薄的限
clear, clc, close all
t = 0:0.1:1;
y = -t+1;
plot(t,y)
ax = gca
这是一条坡度为-1的直线,因此水平轴与直线之间的(锐角)角度为45度。但当你在显示器上用量角器测量时,情况就不是这样了
在不改变x轴和y轴上显示的值的范围或图形窗口的高度的情况下,如果我将量角器举到屏幕上,如何确保从水平轴到直线的测量角度为45度
我当前的方法是更改图形窗口的宽度。在图形窗口无限薄的限制中,线x是一条垂直线。相反,如果图形窗口拉伸到显示器的边缘,则会变平。在中间的某个地方,线有我想要的角度。我就是找不到一个很好的方法来从数学上找到这一点,并在代码中实例化它
编辑:适用于任何锐角的更通用的解决方案。(我没有测试钝角。)
在执行命令后,声明将以像素为单位工作,然后将宽度设置为高度:
ax.Units='pixels';
最大位置(3)=最大位置(4);
您可以通过
axis equal
根据
对沿每个轴的数据单位使用相同的长度
您可能还想使用
axis tight
哪个
通过将轴限制设置为数据范围,使轴框紧紧围绕数据
Matlab确实具有获取本地屏幕分辨率的功能。get(0)是我正在使用的。非常好!非常感谢。这会让我一整天都发疯。这对其他角度不起作用,轴的极限会延伸。这条线永远是45度,没错。我只是提供了一个问题的答案,而不是一般的编程服务。一旦你了解了这个机制,就很容易概括了。@CrisLuengo,L.Scott Johnson给了我钉子锤。从这里概括起来是很简单的。@UniqueWorldline:Luis的答案是正确的方法。-我只是指出这个答案的局限性。
axis tight