美文网首页
使用Java求某点到直线上的投影点

使用Java求某点到直线上的投影点

作者: NemoHo | 来源:发表于2017-01-05 18:08 被阅读0次

使用Java求已知A,B点坐标,求C点到AB所连直线的投影点

 /**
 * 求直线外一点到直线上的投影点
 *
 * @param pLine    线上一点
 * @param k        斜率
 * @param pOut     线外一点
 * @param pProject 投影点
 */
public static void getProjectivePoint(PointF pLine, double k, PointF pOut, PointF pProject) {
    if (k == 0) {//垂线斜率不存在情况
        pProject.x = pOut.x;
        pProject.y = pLine.y;
    } else {
        pProject.x = (float) ((k * pLine.x + pOut.x / k + pOut.y - pLine.y) / (1 / k + k));
        pProject.y = (float) (-1 / k * (pProject.x - pOut.x) + pOut.y);
    }
}
/**
 * 求pOut在pLine以及pLine2所连直线上的投影点
 *
 * @param pLine
 * @param pLine2
 * @param pOut
 * @param pProject
 */
public static void getProjectivePoint(PointF pLine, PointF pLine2, PointF pOut, PointF pProject) {
    double k = 0;
    try {
        k = getSlope(pLine.x, pLine.y, pLine2.x, pLine2.y);
    } catch (Exception e) {
        k = 0;
    }
    getProjectivePoint(pLine, k, pOut, pProject);
}
/**
 * 通过两个点坐标计算斜率
 * 已知A(x1,y1),B(x2,y2)
 * 1、若x1=x2,则斜率不存在;
 * 2、若x1≠x2,则斜率k=[y2-y1]/[x2-x1]
 *
 * @param x1
 * @param y1
 * @param x2
 * @param y2
 * @throws Exception 如果x1==x2,则抛出该异常
 */
public static double getSlope(double x1, double y1, double x2, double y2) throws Exception {
    if (x1 == x2) {
        throw new Exception("Slope is not existence,and div by zero!");
    }
    return (y2 - y1) / (x2 - x1);
}

相关文章

  • 使用Java求某点到直线上的投影点

    使用Java求已知A,B点坐标,求C点到AB所连直线的投影点

  • 第15课 子空间投影

    投影 想找到直线上离某点最近的一点。将投影到,是一个一维空间,找到离线最近的点,该投影点为,为与之间的误差,投影是...

  • 第15课 子空间投影

    投影 想找到直线上离某点最近的一点。将投影到,是一个一维空间,找到离线最近的点,该投影点为,为与之间的误差,投影是...

  • 从负一开始推导SVM

    0 解析几何知识, 点到平面的距离 参考材料 如图, 假设一个平面 , 平面外一点 , 在平面上的投影为, 求点...

  • 1 几何学中用到的一些方法

    1.点到直线的距离 2.获取点在直线上的垂直投影点 3.获取两直线交点 4.获取线段与直线的交点 5.点是否在线段...

  • ios隐性动画---移动某点到某点

    //动画开始和结束都会有delegate回调,具体回调内容可以使用setvalue的方式带参过去!//[anima...

  • 自由

    今天一直在跟时间赛跑,10点到高新区某社区对接下派志愿者的事;下午2点有个表必须上报集团;下午5点开了个孤独的线上...

  • LDA 线性判别分析

    Linear Discriminant Analysis线性判别分析:将需要分类的点投影到一条线上(投影公式:向量...

  • 空间中线面角的求法

    方法一 垂线法求空间中的线面角 使用情景:空间中线面角的求法解题步骤: 第一步 首先根据题意找出直线上的点到...

  • 线性判别分析(LDA)算法原理分析与实现(二分类问题)

    LDA的基本思想 给定训练样本,设法将样本投影到一条直线上,使得同类样例的投影点尽可能的接近,异类样例的投影点尽可...

网友评论

      本文标题:使用Java求某点到直线上的投影点

      本文链接:https://www.haomeiwen.com/subject/ofizvttx.html