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中类和实例如何绑定属性与方法示例详解
Aug 18 Python
Python连接phoenix的方法示例
Sep 29 Python
python的Crypto模块实现AES加密实例代码
Jan 22 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
python切片的步进、添加、连接简单操作示例
Jul 11 Python
python实现键盘输入的实操方法
Jul 16 Python
利用python-docx模块写批量生日邀请函
Aug 26 Python
Python字符串格式化输出代码实例
Nov 22 Python
Python super()方法原理详解
Mar 31 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
Python Process创建进程的2种方法详解
Jan 25 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合并数组中相同元素的方法
2014/11/13 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
进程的查看和调度分别使用什么命令
2013/12/14 面试题
导游实习生自荐书
2014/01/28 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
北京故宫的导游词
2015/01/31 职场文书