本方法的步骤是:

1.判断两个圆是否相交

2.已知两圆的交点连线L1与两圆心连线L2是垂直关系,所以可以得到两圆的交点连线(L1)的斜率

3.通过几何关系求出L1和L2的交点,从而得出L1方程

4.求直线与圆的交点

程序中涉及到的其他静态类方法可以在我的其他博文中找到

public static bool InterC2C(double centerX1, double centerY1, double R1, double centerX2, double centerY2, double R2, out List<double> Rows, out List<double> Columns){Rows = new List<double>();Columns = new List<double>();double dis = DistanceP2P(centerX1, centerY1, centerX2, centerY2);bool flag = true;List<double> row = new List<double>();List<double> col = new List<double>();row.Add(centerX1);row.Add(centerX2);col.Add(centerY1);col.Add(centerY2);//判断两圆是否相交if (dis > R1 + R2){flag = false;}else if (Math.Abs(dis - R1 - R2) < 0.001) //两圆相切的情况{InterC2S(centerX1, centerY1, R1, row, col, out List<double> resR1, out List<double> resC1);InterC2S(centerX2, centerY2, R2, row, col, out List<double> resR2, out List<double> resC2);}else //两圆相交的情况{double L = dis;double ae = (R1 * R1 - R2 * R2 + L * L) / (2 * L);double centerR = centerX1 + ae * (centerX2 - centerX1) / L;double centerC = centerY1 + ae * (centerY2 - centerY1) / L;GenLineEqu2(centerX1, centerY1, centerX2, centerY2, out double a, out double b, out double c);double c2 = a * centerC - b * centerR;//圆和直线的交点InterC2L(centerX1, centerY1, R1, b, -a, c2, out Rows, out Columns);}return flag;}

C#求解圆和圆的交点相关推荐

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

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

  2. 计算几何学 | 圆与直线的交点 | 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 ...

  3. 求过圆心直线与圆的两个交点

    主要是注意所使用的数据类型. 之前用的是float,出现了一些意外,而且花费了我不少时间来反复验证.推导, 做了很多的无用功,而且,反复推导得出来的计算步骤并没有什么不牢靠的地方. 然后计算得到的结果 ...

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

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

  5. lisp取两直线交点画圆_求过圆心直线与圆的两个交点

    主要是注意所使用的数据类型. 之前用的是float,出现了一些意外,而且花费了我不少时间来反复验证.推导, 做了很多的无用功,而且,反复推导得出来的计算步骤并没有什么不牢靠的地方. 然后计算得到的结果 ...

  6. 计算几何之圆与圆的交点

    计算圆与圆的交点,需要用到余弦定理 步骤如下: 求出两个圆的圆心距d 求出向量c2.c-c1.c与c1.c到某交点的向量夹角a 求出向量c2.c-c1.c与x轴的夹角t 那么,两个交点就分别是以c1. ...

  7. 圆与圆的位置关系题目含答案_圆与圆的位置关系课时练习题(附答案)

    由莲山课件提供http://www.5ykj.com/ 资源全部免费温馨提示: 此套题为Word版,请按住Ctrl,滑动鼠标滚轴,调节合适的观看比例,答案解析附后.关闭Word文档返回原板块.课时提 ...

  8. 圆与圆的位置关系题目含答案_圆中考数学题汇总附答案

    圆中考数学题汇总附答案 圆的运算是我们必须掌握的一个数学考点,为了帮助大家更好地学习圆的相关考点,百分网小编为大带来一份圆的中考数学题汇总,附答案,有需要的同学可以看一看,更多内容欢迎关注应届毕业生网 ...

  9. C++继承——以应用抽象类,求圆、圆内接正方形、圆外切正方形的面积和周长为例

    c++中基类的继承及其使用,以圆的内接正方形和外切正方形为例 1:C++中继承的方式 C++中的继承主要分为三类:public公有继承.protected保护继承以及private私有继承,其使用范围 ...

最新文章

  1. 数组--将两个有序数组a,b合并成新的有序数组c
  2. element-ui中el-tree树形控件-树节点的选择(选中当前节点,获取当前id并且获取其父级id)...
  3. python xpath语法-python中使用XPath笔记
  4. inurllay old.php id,搜索技巧
  5. [深度学习]自然语言处理 --- ELMo
  6. 六年级计算机课学什么时候,六年级信息技术《进一步了解计算机》教学设计
  7. Java架构师教你如何突破瓶颈,持续更新中
  8. 70. Climbing Stairs【leetcode】递归,动态规划,java,算法
  9. AngularJS Providers 详解
  10. 【IMU】BMI160 Driver分析及使用
  11. 【JAVA实现近义词匹配挖取算法】
  12. appium ios端自动化测试配置
  13. 函数连续,区间连续,一致连续,绝对连续,Lipschitz连续
  14. matlab--找两条曲线交点并标注于图上的方法
  15. EXCEL中的两大函数语法(subtotal ,sumifs)
  16. android版手机qq 5.0,手机QQ5.0安卓版今日正式发布 手机QQ5.0更新升级内容介绍
  17. 一键取消所有淘宝垃圾短信
  18. CSUC语言期中考试 小帅疯狂搞事
  19. 帝国cms用自定义反馈做在线报名等系统
  20. Android程序设计之音乐播放器实现

热门文章

  1. 2023.2.9,周四【图神经网络 学习记录23】动态图算法 之 SGNN(DGNN):更新组件(update component),传播组件(propagation component)
  2. win10系统右键一直转圈
  3. 物联网技术NB-IOT的网络和应用场景
  4. 前端基础 - 案例一:基础网站搭建
  5. 【总结】2021.01.18期末考总结
  6. 软件测试你三年的计划书,项目软件测试计划书.doc
  7. Java中Colletcions.sort方法详解以及Comparable和Comparator两个接口的区别
  8. JWT-RS256非对称加密NET CORE(一)
  9. symbian创建新的接入点
  10. 打印1000-2000年间的闰年