java求两个圆相交坐标

这篇博客介绍了如何在Java中根据两个圆的坐标和半径计算它们的相交点。通过数学方法联立两个圆的方程,形成一元二次方程,然后求解该方程得到相交坐标。提供了具体的程序代码示例和Circle类的定义。
摘要由CSDN通过智能技术生成

最近由于项目需要,根据两个圆函数求出相交的坐标。实现代码如下,另感谢两圆求交点算法实现Java代码,虽然他所贡献的代码中存在问题,但仍有借鉴意义。

1.两个圆相交的数学求法

在中学数学中我们知道,一个圆可以作如下描述,以x1,y1为圆心,r为半径的一个圆:

这里写图片描述


那么假设现在有两个圆C1与C2,其中C1与C2的描述式如下:

这里写图片描述


其中C1是以(x1,y1)为圆心,r1为半径的圆,C2是以(x2,y2)为圆心,r2为半径的圆。若想求两个圆的交点,那么这个交点一同时在C1与C2上,即同时满足C1与C2的方程,此时只需联立这两个方程即可。

这里写图片描述


我们用C1-C2可得:

这里写图片描述


整理得:

这里写图片描述



这里写图片描述


此时

这里写图片描述


将上式代入C1,整理可得关于x的一元二次方程:

这里写图片描述


此后,只要求出该方程的判别式,进行一元二次方程的求解即可。

2.程序清单
根据1中的算法写出程序如下:

package com.ken.blesniff.util;

import com.ken.blesniff.bean.Circle;

/**
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值