社区
C++ 语言
帖子详情
如何求两个圆的交点,求算法,有代码更好.非常感谢,再次谢谢.
liquanle
2004-12-29 02:04:09
求一个算法。
已知:两个圆,圆A和圆B,圆A的半径和圆心为r1和(a1,b1), 圆B的半径和圆心为r2和(a2,b2).
求这两个圆的交点(可能有一个,也可能有两个,也可能没有,可以只考虑一个一般的算法就行)。
给出算法,能给出代码更好。非常感谢。
解决立即结贴,分不够可再加.
...全文
3997
11
打赏
收藏
如何求两个圆的交点,求算法,有代码更好.非常感谢,再次谢谢.
求一个算法。 已知:两个圆,圆A和圆B,圆A的半径和圆心为r1和(a1,b1), 圆B的半径和圆心为r2和(a2,b2). 求这两个圆的交点(可能有一个,也可能有两个,也可能没有,可以只考虑一个一般的算法就行)。 给出算法,能给出代码更好。非常感谢。 解决立即结贴,分不够可再加.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
redlqs
2004-12-29
打赏
举报
回复
1 列方程
2 求解
3 输出
寻开心
2004-12-29
打赏
举报
回复
主要是考虑相交两点的时候的计算方法,没有仔细去想那些特殊情况
包含的关系是发生在 l<r1 || l<r2的情形下
应该补充进去才完整。
交点连线被原点连线垂直平分的,是一回事
Y是交点到D的距离,也是两个交点之间距离的一半
双杯献酒
2004-12-29
打赏
举报
回复
不是求方程组的解吗?
四次方程是有公式的。
fflush
2004-12-29
打赏
举报
回复
完全的一个解析几何的问题,直接解方程,然后写出表达式,然后用程序计算这个表达式的值就好了:)
goodluckyxl
2004-12-29
打赏
举报
回复
圆包含的情况不要漏掉
你说的情况好象是 水平情况Y应该是交点到D的长度
而不是坐标吧
寻开心
2004-12-29
打赏
举报
回复
这类问题,去专题开发栏目,算法和数据结构里面,哪里做这个的人多点
寻开心
2004-12-29
打赏
举报
回复
1 计算两个圆心之间的距离L
2 如果 L>r1+r2 无交点
3 如果 l = r1 + r2 则一个交点, 用圆心的坐标可以计算出具体点
4 假定 两个交点的连线和圆心连线的交点是D,D到第一个圆心的距离是d, 则
d*d + y*y = r1*r1
(l-d)*(l-d) + y*y = r2 * r2
其中y就是两交点连线距离的一半了
合并一下可得到:
r2*r2 - r1*r1 = l*l - 2dl
d = (l*l - r2*r2 + r1*41) / 2l
5 根据前面的公式,还可以确定出来 y的数值
两个交点,则可求了
这个算法不必解二元二次的方程组,直观简单
goodluckyxl
2004-12-29
打赏
举报
回复
汗 那你不给出精度 迭代是没有意义就算给你大步长也不行
我真的一直不知道有计算机有其他方法 二次方程求解[]
等待 wwxsoft(婉儿) 的算法
liquanle
2004-12-29
打赏
举报
回复
取步长迭代,我用的是double 型,恐怕就不太好说了吧.
而且这样效率太低.
婉儿, 如何解出两个方程的解呀.
我感觉太难解了.
goodluckyxl
2004-12-29
打赏
举报
回复
判断交点个数是很简单的
1.求两个圆心之间距离 L, if( L == ( r1 + r2 )|| L == |r1-r2| ) 一个交点
L > r1+r2 || L < |r1-r2| 则无交点
L >|r1-r2| && L < r1+r2 则有两个交点
2.至于求点 有圆心和半径得出迭代区间,取步长进行迭代得出交点坐标
dudu妈
2004-12-29
打赏
举报
回复
if(sqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2))>(r1+r2))则这两个圆没有交点。
if(sqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2))<(r1+r2))则这两个圆有两个交点。
if(sqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2))=(r1+r2))则这两个圆有一个交点。
圆A的方程为:(x-a1)*(x-a1)+(y-b1)*(y-b1)=r1;
圆B的方程为:(x-a2)*(x-a2)+(y-b2)*(y-b2)=r2;
两个圆的交点为圆A方程和圆B方程的解:
(x-a1)*(x-a1)+(y-b1)*(y-b1)=r1;
(x-a2)*(x-a2)+(y-b2)*(y-b2)=r2;
上面两个方程联合求解,解出x和y,就是两个圆的交点。
SM2
算法
第一篇:ECC加密
算法
ECC椭
圆
曲线加密
算法
算法
(上)
算法
文章目录
算法
1. 数组1. 剑指Offer:数组旋转2. 剑指Offer:调整数组顺序使奇数位于偶数前面3. 剑指Offer: 顺时针打印矩阵4. 剑指Offer: 数组中出现次数超过一半的数字5. 剑指Offer:丑数6. 剑指Offer: 数组中的逆序对7. 剑指Offer: 扑克牌顺子8. 剑指Offer: 数组中重复的数字9. 剑指Offer: 构建乘积数组10. 剑指Offer: 数据流中的中位数11. 剑指Offer: 矩阵中的路径2. 链表1. 剑指Offer:从尾到头打印链表2. 剑指
【数据结构】链表经典
算法
题集锦
前言:本章将分享十一道来自LeetCode/牛客网中的经典链表
算法
题来介绍数据结构中链表在
算法
题中的应用。 文章目录1.删除链表元素思路分析:题解:2.反转链表思路分析:题解:3.链表中间结点思路分析(快慢指针法):题解:4.链表中倒数第K个结点思路分析(快慢指针法):题解:5.合并
两个
有序链表思路分析:题解:6.链表分割思路分析:题解:7.链表的回文结构(第2题和第3题的综合)思路分析:题解:8.相交链表思路分析:题解:9.环形链表I思路分析:题解:10.环形链表II思路分析:题解:11.复制带随机指针
网络流——最大流EK
算法
讲解
好了,这是第二篇博客了,如第一篇所述,来讲一讲刚刚理解的网络流。因为本人只会EK
算法
,所以先讲这个
算法
。 什么是网络流??? 读者们刚接触这个知识可能会有点蒙,不,可能是非常蒙。虽然本蒟蒻也只是懵懵懂 如最短路,我想即使先不学,手算也能将一个简单的图
求
出来。 但是遇到网络流——最大流,那恐怕不是那么好算,反正一开始给我算我也只是一头雾水。(有可能是本人太弱了,各位大佬请谅解)给个图(感谢某位大佬的...
计算几何之旋转卡壳
算法
转载于 http://blog.csdn.net/acmaker/article/details/3188177 一、目录 一些历史: 1978年, M.I. Shamos's Ph.D. 的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当时他发表成果的是一个寻找凸多边形直径的一个非常简单的
算法
, 即根据多边形的一对点距离的最大值来
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章