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的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
python中强大的format函数实例详解
Dec 05 Python
使用python3构建文件传输的方法
Feb 13 Python
Python中请不要再用re.compile了
Jun 30 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
解决python 上传图片限制格式问题
Oct 30 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
pytorch之添加BN的实现
Jan 06 Python
python函数中将变量名转换成字符串实例
May 11 Python
pandas 操作 Excel操作总结
Mar 31 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中使用curl伪造IP的简单方法
2015/08/07 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
Python-opencv实现红绿两色识别操作
2020/06/04 Python
python 如何快速复制序列
2020/09/07 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
大学生冰淇淋店商业计划书
2014/01/14 职场文书
大班开学家长寄语
2014/04/04 职场文书
土木工程求职信
2014/05/29 职场文书
中秋节活动总结
2014/08/29 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书