用Matlab编程,已知两个点的坐标,怎么求直线的方程啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Matlab编程,已知两个点的坐标,怎么求直线的方程啊?相关的知识,希望对你有一定的参考价值。

参考技术A

k=B(2)-A(2)/((B(1)-A(1));k是系数;b=A(2)-k*A(1);b是常数。(方程:y=k*x+b)。

设点1(x1,y1),点2(x2,y2)

a=polyfit([x1,x2],[y1,y2],1)

则方程为y=a(1)x+a(2)

例如:

function qiuzhixian(varargin)%求通过一点或两点的直线

%%%%使用方法:qiujzhixian([2 3]),qiujuli([2 3],[4 5]),

if nargin==0

disp('未输入,请至少输入一点坐标值')

end

if nargin==1

x1=varargin1;

p=polyfit([x1(1) 0],[x1(2) 0],1);

eq=poly2sym(p);

disp(['输入只有一点,则求通过这点和原点的直线方程为:y = ' char(eq)])

end

if nargin==2

x1=varargin1;

x2=varargin2;

p=polyfit([x1(1) x2(1)],[x1(2) x2(2)],1);

eq=poly2sym(p);

disp(['输入有两点,则求通过这两点的直线方程为:y = ' char(eq)])

end

if nargin>2

disp('输入超过两个点,请至多输入两点坐标值')

end

end

扩展资料:

⑴点(x1,y1)关于点(x0,y0)对称的点:(2x0-x1,2y0-y1)

⑵点(x0,y0)关于直线Ax+By+C=0对称的点:

( x0-2A(Ax0+By0+C)/(A^2+B^2) ,y0-2B(Ax0+By0+C)/(A^2+B^2) )

⑶直线y=kx+b关于点(x0,y0)对称的直线:y-2y0=k(x-2x0)-b

⑷直线1关于不平行的直线2对称:定点法、动点法、角平分线法

参考资料来源:百度百科-直线方程

Scala实现:已知三点坐标,求最短距离(如果在垂足不在线段内,最短距离为到其中一点的直线距离)



/**
* 已知三点坐标,求其中一点到另两点的垂线距离
* (如果在垂足不在线段内,最短距离为到其中一点的直线距离)
* Created by wzq on 17-11-2.
*/
object Point2lineDistance {
def main(args: Array[String]) {
val v: Double = pointToLine(-3, 0, 3, 0, 0, 3)
System.out.println(v)
}

def pointToLine(x1: Int, y1: Int, x2: Int, y2: Int, x0: Int, y0: Int): Double = {
var space: Double = 0
var a: Double = .0
var b: Double = .0
var c: Double = .0
a = lineSpace(x1, y1, x2, y2) // 线段的长度
b = lineSpace(x1, y1, x0, y0) // (x1,y1)到点的距离
c = lineSpace(x2, y2, x0, y0) // (x2,y2)到点的距离
if (c <= 0.000001 || b <= 0.000001) {
space = 0
return space
}
if (a <= 0.000001) {
space = b
return space
}
//钝角三角形的最小边长
if (c * c >= a * a + b * b) {
space = b
return space
}
if (b * b >= a * a + c * c) {
space = c
return space
}
val p: Double = (a + b + c) / 2 // 半周长
val s: Double = Math.sqrt(p * (p - a) * (p - b) * (p - c)) // 海伦公式求面积
space = 2 * s / a // 返回点到线的距离(利用三角形面积公式求高)
space
}

// 计算两点之间的距离
private def lineSpace(x1: Int, y1: Int, x2: Int, y2: Int): Double = {
var lineLength: Double = 0
lineLength = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))
lineLength
}
}

以上是关于用Matlab编程,已知两个点的坐标,怎么求直线的方程啊?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 求点坐标

悬赏20!用matlab求直线和椭圆的交点坐标!

怎样在matlab中得到直线方程与plot出的曲线之间的交点坐标

matlab中如何求两直线交点?

怎么在matlab里面求已有两条曲线的交点?

matlab中怎么求两曲线交点