/*** Created by apple on 2017/1/15.*/
//求直线与圆的交点
/*函数参数说明:cx:圆X轴坐标cy:圆y轴坐标r:圆半径stx:起点直线的X轴坐标sty:起点直线的轴坐标edx:终点直线的X轴坐标edy:终点直线的Y轴坐标返回值:交点坐标(x,y)
*/
function  getPoint(cx,cy,r,stx,sty,edx,edy) {// 求直线var k = (edy - sty) / (edx - stx);var b = edy - k*edx;//列方程var x1,y1,x2,y2;var c = cx*cx + (b - cy)*(b- cy) -r*r;var a = (1 + k*k);var b1 = (2*cx - 2*k*(b - cy));var  tmp = Math.sqrt(b1*b1 - 4*a*c);x1 = ( b1 + tmp )/(2*a);y1 = k*x1 + b;x2 = ( b1 - tmp)/(2*a);y2 = k*x2 + b;
//判断求出的点是否在圆上var res = (x1 -cx)*(x1 -cx) + (y1 - cy)*(y1 -cy);var  p = {};if( res == r*r){p.x = x1;p.y = y1;}    else{p.x = x2;p.y = y2;}
return p;
}
//测试
var s = getPoint(10,20,50,34,45,12,34);
// 结果:{x: 48.2952871010182, y: 52.1476435505091}
console.log(s);

[算法]直线与圆的交点程序设计相关推荐

  1. Java:实现找到一般形式的直线与圆的交点算法(附完整源码)

    Java:实现找到一般形式的直线与圆的交点算法 package com.williamfiset.algorithms.geometry;import static java.lang.Math.*; ...

  2. python计算直线与圆的交点,不用第三方库,方便迁移其他语言

    python求圆和线段/直线的交点 计算直线与圆的交点,不用第三方库,方便迁移其他语言 主要应用:图像及几何计算应用 计算直线与圆的交点,不用第三方库,方便迁移其他语言 主要应用:图像及几何计算应用 ...

  3. matlab过圆心的直线,iOS计算过圆心直线与圆的交点

    主要计算公式: 直线的一般方程      y = kx + b; 圆的一般方程        x^2 + y^2 + Dx + Ey + F = 0; 圆的基本系数关系     r = (根号(D^2 ...

  4. 求线段或直线与圆的交点

    2019独角兽企业重金招聘Python工程师标准>>> 设圆心为O,圆半径为r,直线(或线段)L上的两个点为P1.P2. 第一步:如果L是线段且P1,P2都包含在O内,则没有交点. ...

  5. JAVA程序设计:求直线与圆的交点坐标

    其实圆与直线的交点方程并不难解,难得是算法实现,废话不多说,直接上代码: 核心类 /*** @Author: Zhangwenshun* @Description:* @Date: Created i ...

  6. python 检测直线 交点_在python中,找到直线和圆的交点的最有效方法是什么?

    我有一个由许多点组成的多边形.我想找到多边形和圆的交集.提供[x0,y0]的圆心和r0的半径,我写了一个粗函数来简单求解圆和直线的二次方程.但是,一个接一个地找到多边形的每个线段的交集的效率如何呢?有 ...

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

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

  8. 直线和直线,直线和圆,直线和矩形的交点

    直线和圆的交点公式 y=kx+b (x+c)² + (y+d)² = r² 的形式 转换成 ax+by+c=0 以(x, y)为圆心,r 为半径的形式 c++ // ax+by+c=0 // (x, ...

  9. C++求解圆心、半径、直线与圆交点

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 C++求解圆心.半径.直线与圆交点 前言 一.检测对象 二.检测方法 1.检测圆心和半径 2.求解直线与圆的交点 3.计算圆环残缺比例 ...

  10. 计算几何——直线、线段和圆的交点

    汇总篇:计算几何汇总 首先,求出圆心O在直线AB上的投影点E 然后求出AB的方向向量e=AB/|AB| 令EC=ED=base base = sqrt(r^2-OE^2) EC = -base *e ...

最新文章

  1. linux cpu漏洞,【图片】为什么linux mint上cpu漏洞直到现在也没完全修复?_linux吧_百度贴吧...
  2. JAVA框架之Hibernate【配置文件详解】
  3. 【Java每日一题】20161128
  4. ios 改变图片大小缩放方法
  5. VS C++调用python进行画图matplotlib
  6. BZOJ 1051 受欢迎的牛(Tarjan缩点)
  7. 数据结构--图 Graph
  8. ffmpeg系列-解决ffmpeg获取aac音频文件duration不准
  9. 原生js实现图片验证码
  10. 1507. 旅行计划
  11. kettle org.pentaho.ui.xul.XulException: java.lang.reflect.InvocationTargetException
  12. 8700K + z370 安装黑苹果 Mojave
  13. 美团Java面试题,苹果手机java编程软件
  14. 编辑距离算法原理及其实现
  15. 信息学奥赛一本通 1367:查找二叉树(tree_a)
  16. 【应用随机过程】07. 平稳过程
  17. 计算机进位制转换方法,计算机进位数制及其转换方法和技巧
  18. 礼物说仿写项目iOS源码
  19. 便携式文件加密器注册码_使用便携式文件加密工具安全地存储私人文件
  20. RabbitMQ中的死信及死信队列详解

热门文章

  1. TTL电平和CMOS 电平
  2. 只需 1 分钟,这个网站用 AI 分离歌曲的人声、伴奏和乐器声
  3. 多尺度图像增强Retinex相关算法学习及实现
  4. L298N电机驱动模块的简单介绍
  5. java数据透视表_Java 创建 Excel 数据透视表
  6. delphi压缩后使用http协议base64上传下载6G超大文件
  7. 2018百度之星程序设计大赛初赛B——1004p1m2
  8. 致第一次安装(yong)小小输入法的你
  9. DLL注入之修改PE静态注入
  10. 中国史上最牛的网管——李兴平