总觉得代码理应是无所不能的,尤其是在复杂的计算方面。而最近一个项目,要求计算坐标点,这尼玛遇到了要解方程组的情况,还是一元二次方程组。当时整个人都不好了,上网到处搜寻,也无法找到那种可以把表达式列出来,就给你解出来的方法。不过还好,网友的一些代码给了我不少的启发,于是摸出难得一用的纸笔,老老实实在草稿纸上演算,最终有了以下代码:

private void pointXY() {Point curPoint = new Point(20, 30);// 当前坐标Point nextPoint = new Point(35, 42);// 下个点坐标double distance = Math.sqrt(Math.pow(curPoint.x - nextPoint.x, 2)+ Math.pow(curPoint.y - nextPoint.y, 2));// 两点的坐标距离double lenthUnit = distance / 5;// 单位长度// 第一步:求得直线方程相关参数y=kx+bdouble k = (curPoint.y - nextPoint.y) * 1.0/ (curPoint.x - nextPoint.x);// 坐标直线斜率kdouble b = curPoint.y - k * curPoint.x;// 坐标直线b// 第二步:求得在直线y=kx+b上,距离当前坐标距离为L的某点// 一元二次方程Ax^2+Bx+C=0中,// 一元二次方程求根公式:// 两根x1,x2= [-B±√(B^2-4AC)]/2A// ①(y-y0)^2+(x-x0)^2=L^2;// ②y=kx+b;// 式中x,y即为根据以上lenthUnit单位长度(这里就是距离L)对应点的坐标// 由①②表达式得到:(k^2+1)x^2+2[(b-y0)k-x0]x+[(b-y0)^2+x0^2-L^2]=0double A = Math.pow(k, 2) + 1;// A=k^2+1;double B = 2 * ((b - curPoint.y) * k - curPoint.x);// B=2[(b-y0)k-x0];int m = 1;double L = m * lenthUnit;// C=(b-y0)^2+x0^2-L^2double C = Math.pow(b - curPoint.y, 2) + Math.pow(curPoint.x, 2)- Math.pow(L, 2);// 两根x1,x2= [-B±√(B^2-4AC)]/2Adouble x1 = (-B + Math.sqrt(Math.pow(B, 2) - 4 * A * C)) / (2 * A);double x2 = (-B - Math.sqrt(Math.pow(B, 2) - 4 * A * C)) / (2 * A);double x = 0;// 最后确定是在已知两点之间的某点if (x1 == x2) {x = x1;} else if (curPoint.x <= x1 && x1 <= nextPoint.x || nextPoint.x <= x1&& x1 <= curPoint.x) {x = x1;} else if (curPoint.x <= x2 && x2 <= nextPoint.x || nextPoint.x <= x2&& x2 <= curPoint.x) {x = x2;}double y = k * x + b;Point mPoint = new Point((int) x, (int) y);
}

已知两点坐标,求直线方程、距离其中一点距离为L的某点相关推荐

  1. 已知两点坐标求直线的一般表达式

    假设有两个点x1,y1,x2,y2 一般式Ax+By+C=0 A=y2-y1 B=x1-y2 g=__gcd(A,B); A/=g,B/=g 那么C就 C=-(Ax+By) 随便带一个点进去就好了 转 ...

  2. 转 已知两点坐标和半径求圆心坐标程序C++

    数学思想:利用圆方程和直线方程 已知两点坐标和半径求圆心坐标程序 #include <iostream> #include <fstream> #include <cma ...

  3. 已知经纬度坐标求两点间距离,用python表示

    已知经纬度坐标求两点间距离,用python表示 已知地球上任意两点(lon1, lat1),( lon2, lat2)的经纬度坐标,求两点间的距离用haversine表示: 1.首先先将经纬度坐标的角 ...

  4. python坐标表示_已知经纬度坐标求两点间距离,用python表示

    已知经纬度坐标求两点间距离,用python表示 已知地球上任意两点(lon1, lat1),( lon2, lat2)的经纬度坐标,求两点间的距离用haversine表示: 1.首先先将经纬度坐标的角 ...

  5. 已知两点,求两点与原点连线的角度

    /* 怎么求夹角:已知两点坐标要求其到原点连线的夹角, 那么我们可以用向量去做, 用向量的积除以向量模的乘积,在求其反函数, 然后转换为角度就可以知道其角度为多少了: 向量的模的乘积怎么算: sqrt ...

  6. 已知两点坐标拾取怎么操作_已知的操作员学习-第4部分

    已知两点坐标拾取怎么操作 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's ...

  7. 已知两点坐标拾取怎么操作_已知的操作员学习-第3部分

    已知两点坐标拾取怎么操作 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's ...

  8. python3 已知两点坐标算角度

    import mathdef azimuthangle(x1, y1, x2, y2):""" 已知两点坐标计算角度 -:param x1: 原点横坐标值:param y ...

  9. 关于已知两点经纬度求球面最短距离的公式推导

    已知两点经纬度计算球面距离的公式,一搜一大堆,形式如下: 可是至于这个公式为什么是这样的,今天推导了一下,详细推导过程如下.首先画个图(图1),要不然空间想象能力差的话容易犯糊涂.首先对图1做个大致的 ...

最新文章

  1. 跨编译单元之初始化次序
  2. java扫描注解_使用Spring Java注释扫描
  3. Windows 技巧篇-电脑蓝光过滤,颜色校准调节蓝光,电脑源头过滤蓝光,保护眼睛,护眼软件原理
  4. maven插件编写_编写Maven插件的提示
  5. 解决计算治理问题,详解微众银行大数据平台中间件Linkis架构和应用
  6. Qt调用jrtplib实现单播、多播和广播
  7. idea设置主题路径
  8. 部分格式文件解释以及万能文件查看器下载
  9. linux编译一直失败,linux编译安装时常见错误解决办法
  10. 有一个函数y=x(x「1),y=2x-1(1「=x「10),y.=3x-11(x」=10)。写一段程序,输入x,输出y值
  11. poco mysql 编译_Poco介绍及编译
  12. 成都博兰科技有限公司助宝兰网进入云贵川渝市场 www.beylai.com
  13. 网络运维网管解决方案
  14. 超星/智慧树 网课答案查询 高正确率
  15. 关于iPad上百度网盘中压缩包下载不能找到的问题
  16. POJ - 3067
  17. Hash算法解决冲突的方法
  18. 小红书api_【实习精选】oppo、小红书等名企实习汇总(96)
  19. 多线程系列学习:ABA问题
  20. 一个好的 ERP 系统需要具备哪些功能模块?

热门文章

  1. SPA程序加载首界面eclipse卡顿解决笔记
  2. You may have an infinite update loop in a component render function.
  3. C语言换币问题:将一块钱,换成50个硬币,其中硬币的种类有1分、两分、五分。输出这50个硬币分配情况。
  4. 学习单片机的准备工作
  5. 技术胖的2019新版React全家桶免费视频(84集)
  6. java接口与抽象类的优缺点_java抽象类与接口的比较
  7. C语言:十进制转十六进制并组合输出
  8. 计算1-10000之间的质数
  9. 渐变 -- QBrush
  10. ED2K的资源链接如何进行下载?