求圆和直线之间的交点

/*** 求圆和直线之间的交点* 直线方程:y = kx + b* 圆的方程:(x - m)² + (x - n)² = r²* x1, y1 = 线坐标1, x2, y2 = 线坐标2, m, n = 圆坐标, r = 半径*/
public getInsertPointBetweenCircleAndLine(x1, y1, x2, y2, m, n, r) {// console.log(x1, y1, x2, y2, m, n, r)let kbArr = this.binaryEquationGetKB(x1, y1, x2, y2)let k = kbArr[0]let b = kbArr[1]let aX = 1 + k * klet bX = 2 * k * (b - n) - 2 * mlet cX = m * m + (b - n) * (b - n) - r * rlet insertPoints = []let xArr = this.quadEquationGetX(aX, bX, cX)xArr.forEach(x => {let y = k * x + binsertPoints.push({ x: x, y: y })})return insertPoints
}

/*** 求二元一次方程的系数* y1 = k * x1 + b => k = (y1 - b) / x1* y2 = k * x2 + b => y2 = ((y1 - b) / x1) * x2 + b*/
private binaryEquationGetKB(x1, y1, x2, y2) {let k = (y1 - y2) / (x1 - x2)let b = (x1 * y2 - x2 * y1) / (x1 - x2)return [k, b]
}

/*** 一元二次方程求根* ax² + bx + c = 0*/
public quadEquationGetX(a, b, c) {let xArr = []let result = Math.pow(b, 2) - 4 * a * cif (result > 0) {xArr.push((-b + Math.sqrt(result)) / (2 * a))xArr.push((-b - Math.sqrt(result)) / (2 * a))} else if (result == 0) {xArr.push(-b / (2 * a))}return xArr
}

posted @ 2018-12-03 15:12 HaoK 阅读( ...) 评论( ...) 编辑 收藏

求圆和直线之间的交点相关推荐

  1. 计算几何之求圆与直线的交点

    求圆与直线的交点的方法是: 求圆心c在直线l上的投影点pr 求出直线l上的单位向量e 根据r和pr的长度来计算出圆内线段部分的一半base 用pr±base*e即得到答案 题目:CGL_7_D AC代 ...

  2. 求空间两条直线之间的距离

    1. 前言 最近老板让写一段空间点匹配的代码, 其中涉及到求空间两直线之间的距离,写起来满费劲的, 这里做一个记录. 2. 处理思路 空间两直线之间的位置关系主要可以分为: 重合, 平行, 相交, 异 ...

  3. 机器人技术第三次作业:用面向对象的思维设计相关类,从而实现直线与直线、直线与圆、直线与矩形的交点。

    用面向对象的思维设计相关类,从而实现直线与直线.直线与圆.直线与矩形的交点. 基本思想: 直线与直线,直线与圆:利用公式直接求解 直线与矩形:分解成直线与直线的交点: #include <ios ...

  4. 计算几何学 | 圆与直线的交点 | Cross Points of a Circle and a Line | C/C++实现

    问题描述 求圆c与直线 l l l的交点. 输入: 输入按照下述格式给出: c x cx cx c y cy cy r r r q q q L i n e 1 Line_1 Line1​ L i n ...

  5. C语言算2个坐标点之间的距离,c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode...

    #include #include #include char explode( char * str , char symbol ); double distance ( int x1 , int ...

  6. 直线与直线、直线与圆、直线与矩形的交点

    求直线与直线.直线与圆.直线与矩形的交点 直线与直线的交点:a1x + b1x + c1x = 0 与 a2x + b2x + c2x = 0的交点坐标可直接根据公式x = (b1c2 - b2c1) ...

  7. [计算几何] (二维)圆与直线的交点

    给出圆心O的坐标, 和半径r, 再给出点A,B的坐标构成直线AB, 求出圆与直线AB交点的坐标 如下图 Step1: 首先求出圆心c在直线l 上的投影点pr的坐标 可通过求解向量p1pr(p1pr的长 ...

  8. java两条直线交点_求两条直线的交点坐标

    看UdaCity机器学习大纲,发现入门班中有一条:编写算法计算一组直线或平面的交点. 遂从最简单的直角坐标系两条直线的交点开始, 直线1的方程解析式: 2x-y=0; 直线2的方程解析式: 4x-5y ...

  9. 用矢量变换的方法求两条直线的交点

    求两条直线的交点,最常见的写法是列出两条直线的方程,联立求解.     但这种办法的弊端很大:     1 )算法是坐标系相关的,要考虑直线是水平还是垂直,写出很多判断条件,增加了程序的不稳定性    ...

最新文章

  1. cefsharp 加载慢_知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍!
  2. 2018-2019-2 网络对抗技术 20165324 Exp4:恶意代码分析
  3. 威尔士柯基犬,计算机视觉,以及深度学习的力量
  4. 微信小程序适配iPhone X
  5. 在leopard下用textmate开发rails项目
  6. pb 执行存储过程带参数_数据库存储过程
  7. mysql 5.6 dmr_CentOS下mysql5.6升级5.7指南
  8. Java 链表数据修改
  9. 错误: 无法生成项目输出组“内容文件来自WebApplication1(活动)”
  10. 2016.05.07华为网盘-将会暂停服务的网站一览 - 做好数据迁移的准备哦
  11. SNE T分布 t-SNE数据降维与可视化
  12. 注册测绘师考试(个人总结)—工程测量、地籍测量、房产测量、界线测量
  13. 踩了个DNS解析的坑,但我还是没想通
  14. phpnow搭建本地网站服务器,phpnow搭建本地网站服务器
  15. 看了鲁迅的平面设计,很多设计师表示可能要转行了
  16. gdal切火星偏移的瓦片
  17. 招聘面试的STAR原则
  18. 一次当晋级评委的经历
  19. 无监督聚类算法该如何评价
  20. 楚留香手游系统互通的服务器,楚留香手游帮派系统互通介绍

热门文章

  1. 拒酒词,好难找哟,留到有用
  2. python 手机自动化_Win10 下python_appium的Android手机自动化环境搭建
  3. 学习Matlab第三天——画3D图
  4. 分析IE浏览器不能上网的原因
  5. 使用PowerPhotos for Mac查找重复项似乎缺少一些重复的照片的解决办法
  6. 四连涨!海尔智家这波私有化还有多大想象空间?
  7. 易语言大漠圆形椭圆形渐开线结合鼠标特征码刷怪
  8. CNN中.view()和.shape()用法总结
  9. 怎样才能显示计算机开机次数增多,怎么查询电脑开机次数
  10. 弄了一整天,终于把打印自定义纸张大小搞定了