我在Matlab中绘制了一条线,我想找出我的线穿过边缘的坐标:
有任何建议或意见吗? =)我的函数xy-limits是-1到1.这是我到目前为止的代码:
yp = -1 + (1-(-1)).*rand(1,2);
xp = -1 + (1-(-1)).*rand(1,2);
a = (yp(2)-yp(1)) / (xp(2)-xp(1));
b = yp(1)-a*xp(1);
xlim([-1 1])
ylim([-1 1])
xlims = xlim(gca);
ylims = ylim(gca);
y = xlims*a+b;
line( xlims, y );
答案 0 :(得分:3)
y=a*x+b
因此,基本上限制范围内的结果点是下图中的绿点,超出限值的结果点是红点。
答案 1 :(得分:3)
我想我自己解决了这个问题=)如果有人碰到这个问题,这就是我修改代码的方法:
yp = -1 + (1-(-1)).*rand(1,2);
xp = -1 + (1-(-1)).*rand(1,2);
a = (yp(2)-yp(1)) / (xp(2)-xp(1));
b = yp(1)-a*xp(1);
xlim([-1 1])
ylim([-1 1])
x = xlim(gca);
y = x*a+b;
for i = 1:numel(y)
if y(i) < -1
y(i) = -1;
x(i) = (-b-1)/a;
elseif y(i) > 1
y(i) = 1;
x(i) = (1-b)/a;
end
end
line( x, y );
这似乎对我有用,我可以解决Gunthers图片中的“绿点”=)