使用 MatLab,我知道如何使用以下代码创建连接两点的线段:
line([0 1],[0 1])
从点 (0,0) 到点 (1,1) 绘制一条直线段。
我想做的是继续这条线到地 block 的边缘。我不想只在这两点之间画一条线,而是想通过这两个点画一条线,该线跨越整个图中的任何一组两点。
对于这条特定的线和 x=-10:10, y=-10:10 的情节我可以写:
line([-10 10], [-10 10]);
但我需要将其概括为任何一组点。
最佳答案
求解通过这两点的直线方程:
y = a*x + b;
对于
a
和b
:a = (yp(2)-yp(1)) / (xp(2)-xp(1)); b = yp(1)-a*xp(1);
找到绘图窗口的边缘
xlims = xlim(gca); ylims = ylim(gca);
或者将边缘拉远,这样你仍然可以缩小,稍后重置 x/y 限制。
或者如果目前没有情节,请定义您想要的边缘:xlims = [-10 10]; ylims = [-10 10];
将这些边填入线方程并绘制相应的点:
y = xlims*a+b; line( xlims, y );
并重置边缘
xlim(xlims); ylim(ylims);
有一种特殊情况,垂直线,您必须单独处理。
关于matlab - 通过两点画一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13143668/