直线方程

来源:互联网 发布:广州沙河网络批发 编辑:程序博客网 时间:2024/04/28 16:41

通过两点求直线方程
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;    }}
0 0
原创粉丝点击