[算法]直线与圆的交点程序设计
/*** 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);
[算法]直线与圆的交点程序设计相关推荐
- Java:实现找到一般形式的直线与圆的交点算法(附完整源码)
Java:实现找到一般形式的直线与圆的交点算法 package com.williamfiset.algorithms.geometry;import static java.lang.Math.*; ...
- python计算直线与圆的交点,不用第三方库,方便迁移其他语言
python求圆和线段/直线的交点 计算直线与圆的交点,不用第三方库,方便迁移其他语言 主要应用:图像及几何计算应用 计算直线与圆的交点,不用第三方库,方便迁移其他语言 主要应用:图像及几何计算应用 ...
- matlab过圆心的直线,iOS计算过圆心直线与圆的交点
主要计算公式: 直线的一般方程 y = kx + b; 圆的一般方程 x^2 + y^2 + Dx + Ey + F = 0; 圆的基本系数关系 r = (根号(D^2 ...
- 求线段或直线与圆的交点
2019独角兽企业重金招聘Python工程师标准>>> 设圆心为O,圆半径为r,直线(或线段)L上的两个点为P1.P2. 第一步:如果L是线段且P1,P2都包含在O内,则没有交点. ...
- JAVA程序设计:求直线与圆的交点坐标
其实圆与直线的交点方程并不难解,难得是算法实现,废话不多说,直接上代码: 核心类 /*** @Author: Zhangwenshun* @Description:* @Date: Created i ...
- python 检测直线 交点_在python中,找到直线和圆的交点的最有效方法是什么?
我有一个由许多点组成的多边形.我想找到多边形和圆的交集.提供[x0,y0]的圆心和r0的半径,我写了一个粗函数来简单求解圆和直线的二次方程.但是,一个接一个地找到多边形的每个线段的交集的效率如何呢?有 ...
- 直线与直线、直线与圆、直线与矩形的交点
求直线与直线.直线与圆.直线与矩形的交点 直线与直线的交点:a1x + b1x + c1x = 0 与 a2x + b2x + c2x = 0的交点坐标可直接根据公式x = (b1c2 - b2c1) ...
- 直线和直线,直线和圆,直线和矩形的交点
直线和圆的交点公式 y=kx+b (x+c)² + (y+d)² = r² 的形式 转换成 ax+by+c=0 以(x, y)为圆心,r 为半径的形式 c++ // ax+by+c=0 // (x, ...
- C++求解圆心、半径、直线与圆交点
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 C++求解圆心.半径.直线与圆交点 前言 一.检测对象 二.检测方法 1.检测圆心和半径 2.求解直线与圆的交点 3.计算圆环残缺比例 ...
- 计算几何——直线、线段和圆的交点
汇总篇:计算几何汇总 首先,求出圆心O在直线AB上的投影点E 然后求出AB的方向向量e=AB/|AB| 令EC=ED=base base = sqrt(r^2-OE^2) EC = -base *e ...
最新文章
- linux cpu漏洞,【图片】为什么linux mint上cpu漏洞直到现在也没完全修复?_linux吧_百度贴吧...
- JAVA框架之Hibernate【配置文件详解】
- 【Java每日一题】20161128
- ios 改变图片大小缩放方法
- VS C++调用python进行画图matplotlib
- BZOJ 1051 受欢迎的牛(Tarjan缩点)
- 数据结构--图 Graph
- ffmpeg系列-解决ffmpeg获取aac音频文件duration不准
- 原生js实现图片验证码
- 1507. 旅行计划
- kettle org.pentaho.ui.xul.XulException: java.lang.reflect.InvocationTargetException
- 8700K + z370 安装黑苹果 Mojave
- 美团Java面试题,苹果手机java编程软件
- 编辑距离算法原理及其实现
- 信息学奥赛一本通 1367:查找二叉树(tree_a)
- 【应用随机过程】07. 平稳过程
- 计算机进位制转换方法,计算机进位数制及其转换方法和技巧
- 礼物说仿写项目iOS源码
- 便携式文件加密器注册码_使用便携式文件加密工具安全地存储私人文件
- RabbitMQ中的死信及死信队列详解