gpt4 book ai didi

matlab - 以用户在 MATLAB 中测量的指定角度始终如一地生成线

转载 作者:行者123 更新时间:2023-12-01 19:35:25 25 4
gpt4 key购买 nike

考虑下面在 MATLAB 中生成直线向下倾斜的简单代码。

clear, clc, close all

t = 0:0.1:1;
y = -t+1;


plot(t,y)
ax = gca

这是一条斜率为 -1 的线,因此水平轴与线之间的(锐)角为 45 度。除了当你用显示器上的 protractor 测量时不是这样。

在不更改 x 轴和 y 轴上显示的值的范围或图形窗口的高度的情况下,如果我将 protractor 举到屏幕上,我如何确保从水平轴到直线的角度为 45 度?

我目前的做法是改变图形窗口的宽度。在图形窗口无限细的极限下,x线是一条垂直线。相反,如果图形窗口被拉伸(stretch)到监视器的边缘,它就会变平。在中间的某个地方,这条线有我想要的角度。我只是找不到从数学上找到这一点并在代码中实例化它的好方法。

编辑:任何锐角的更通用的解决方案。 (我没有测试钝角。)

clear, clc, close all

ang_deg = 70;
slope = tand(ang_deg);


t = 0:0.1:1;
y = -slope*t+1;

f = figure;
f.Position(3) = f.Position(3)*1.5;
plot(t,y)

% For a given height, change the width
ax = gca;
ax.Units = 'pixels';
ax.Position(3) = ax.Position(4)/slope;

最佳答案

你可以用

axis equal

根据documentation ,

uses the same length for the data units along each axis.

您可能还想使用

axis tight

哪个

fits the axes box tightly around the data by setting the axis limits equal to the range of the data

关于matlab - 以用户在 MATLAB 中测量的指定角度始终如一地生成线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57079566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com