通过两点求直线方程
1. 已知点p1,p2
2. 调用LinearEquation .calculateParameter(Point,Point)求方程参数A,B,C
3. 至于其它参数请使用上面的一般式参数进行求解,可参考直线方程-[百度百科]
package kaini.me.math;
/**
* 直线方程
* Created by chen.canney@gmail.com on 2016/9/22.
*/
public class LinearEquation {
public double A;
public double B;
public double C;
public LinearEquation(double a, double b, double c) {
A = a;
B = b;
C = c;
}
/**
* 计算参数
* @param p1
* @param p2
* @return
*/
public static LinearEquation calculateParameter(Point p1, Point p2){
double A;
double B;
double C;
if(p2.getX() == p1.getX() && p2.getY() == p1.getY()){
A = 0;
B = 0;
C = 0;
}else if(p2.getX() == p1.getX()){
A = 1;
B = 0;
C = -p2.getX();
}
else if(p2.getY() == p1.getY())
{
A = 0;
B = 1;
C = -p2.getY();
}
else
{
A = (p2.getY() - p1.getY())/(p2.getX() - p1.getX());
B = -1;
C = p1.getY() - A*p1.getX();
}
return new LinearEquation(A,B,C);
}
}
[转载请注明:Canney 原创:http://blog.csdn.net/canney_chen/article/details/52637669]
package kaini.me;
/**
* Created by chen.canney@gmail.com on 2016/9/23.
*/
public class Point {
double x;
double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public void setX(double x) {
this.x = x;
}
}