使用MatLab,我知道如何使用以下代码创建连接两个点的线段:
line([0 1],[0 1])
Run Code Online (Sandbox Code Playgroud)
这将绘制从点(0,0)到点(1,1)的直线段.
我想要做的是继续该线到剧情的边缘.我不想在这两个点之间划一条线,而是想通过这两个点绘制一条线,这两个点跨越整个图形,任意两点.
对于这个特定的线和ax = -10:10,y = -10:10的情节我可以写:
line([-10 10], [-10 10]);
Run Code Online (Sandbox Code Playgroud)
但我需要对任何一组点进行概括.
Gun*_*uyf 10
通过这两点解决线方程:
y = a*x + b;
Run Code Online (Sandbox Code Playgroud)
为a和b:
a = (yp(2)-yp(1)) / (xp(2)-xp(1));
b = yp(1)-a*xp(1);
Run Code Online (Sandbox Code Playgroud)找到绘图窗口的边缘
xlims = xlim(gca);
ylims = ylim(gca);
Run Code Online (Sandbox Code Playgroud)
或者将边缘拉得很远,这样你仍然可以缩小,稍后重置x/y限制.
或者如果此刻没有情节,请定义您想要的边缘:
xlims = [-10 10];
ylims = [-10 10];
Run Code Online (Sandbox Code Playgroud)将这些边填入线方程并绘制相应的点:
y = xlims*a+b;
line( xlims, y );
Run Code Online (Sandbox Code Playgroud)并重置边缘
xlim(xlims);
ylim(ylims);
Run Code Online (Sandbox Code Playgroud)有一个特殊情况,垂直线,您必须单独处理.
关于什么
function = long_line(X,Y,sym_len)
dir = (Y-X)/norm(Y-X);
Yp = X + dir*sym_len;
Xp = X - dir*sym_len;
line(Xp,Yp);
end
Run Code Online (Sandbox Code Playgroud)
是sym_len绘制线周长的预期长度的一半X?