Python求两个圆的交点坐标或三个圆的交点坐标方法


Posted in Python onNovember 07, 2018

计算两个圆的交点

代码如下:

# -*- coding: utf-8 -*-
import math
import numpy as np
def insec(p1,r1,p2,r2):
 x = p1[0]
 y = p1[1]
 R = r1
 a = p2[0]
 b = p2[1]
 S = r2
 d = math.sqrt((abs(a-x))**2 + (abs(b-y))**2)
 if d > (R+S) or d < (abs(R-S)):
  print ("Two circles have no intersection")
  return 
 elif d == 0 and R==S :
  print ("Two circles have same center!")
  return
 else:
  A = (R**2 - S**2 + d**2) / (2 * d)
  h = math.sqrt(R**2 - A**2)
  x2 = x + A * (a-x)/d
  y2 = y + A * (b-y)/d
  x3 = round(x2 - h * (b - y) / d,2)
  y3 = round(y2 + h * (a - x) / d,2)
  x4 = round(x2 + h * (b - y) / d,2)
  y4 = round(y2 - h * (a - x) / d,2)
  print (x3, y3)
  print (x4, y4)
  c1=np.array([x3, y3])
  c2=np.array([x4, y4])
  return c1,c2
 
P1=np.array([-5,0])
R1=10
P2=np.array([5,0])
R2=5
C=insec(P1,R1,P2,R2)
C1=C[0]
C2=C[1]

计算三个圆的交点,首先要保证三个圆必须有共同的交点,然后调用两次函数,再求交集,即可算出三个圆的交点。

以上这篇Python求两个圆的交点坐标或三个圆的交点坐标方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python编写Logistic逻辑回归
Dec 30 Python
numpy.transpose对三维数组的转置方法
Apr 17 Python
Selenium定位元素操作示例
Aug 10 Python
一篇文章弄懂Python中所有数组数据类型
Jun 23 Python
Python何时应该使用Lambda函数
Jul 02 Python
Python如何调用外部系统命令
Aug 07 Python
使用Python的turtle模块画国旗
Sep 24 Python
keras之权重初始化方式
May 21 Python
如何卸载python插件
Jul 08 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
python中 .npy文件的读写操作实例
Apr 14 Python
在Python中分别打印列表中的每一个元素方法
Nov 07 #Python
对python中数组的del,remove,pop区别详解
Nov 07 #Python
对Python中plt的画图函数详解
Nov 07 #Python
python使用matplotlib绘制热图
Nov 07 #Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 #Python
Python将一个Excel拆分为多个Excel
Nov 07 #Python
python计算两个矩形框重合百分比的实例
Nov 07 #Python
You might like
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php分页函数示例代码分享
2014/02/24 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
PHP使用递归生成文章树
2015/04/21 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
PHP实现的策略模式示例
2019/03/20 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
python 上下文管理器使用方法小结
2017/10/10 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
python add_argument()用法解析
2020/01/29 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
公务员考察材料范文
2014/12/23 职场文书
紫日观后感
2015/06/05 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
python实现简单的名片管理系统
2021/04/26 Python
Pandas 数据编码的十种方法
2022/04/20 Python