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 相关文章推荐
Python3实现连接SQLite数据库的方法
Aug 23 Python
详解Python中的join()函数的用法
Apr 07 Python
Python的Django框架中设置日期和字段可选的方法
Jul 17 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
python实现ip地址的包含关系判断
Feb 07 Python
Django用户身份验证完成示例代码
Apr 03 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
Aug 07 Python
python openCV实现摄像头获取人脸图片
Aug 20 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
Sep 16 Python
Python中OpenCV实现简单车牌字符切割
Jun 11 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
javascript入门之数组[新手必看]
2016/11/21 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python3学生名片管理v2.0版
2018/11/29 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
数学专业推荐信范文
2013/11/21 职场文书
中英文自我评价语句
2013/12/20 职场文书
运动会通讯稿100字
2014/01/31 职场文书
新闻人物通讯稿
2014/10/09 职场文书
2015年班干部工作总结
2015/04/29 职场文书
学术会议开幕词
2016/03/03 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python