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实现多线程下载文件的代码实例
Jun 01 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
python实现神经网络感知器算法
Dec 20 Python
Python实现学校管理系统
Jan 11 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
Python序列类型的打包和解包实例
Dec 21 Python
python如何进入交互模式
Jul 06 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
python 实现单例模式的5种方法
Sep 23 Python
Opencv python 图片生成视频的方法示例
Nov 18 Python
django学习之ajax post传参的2种格式实例
May 14 Python
Python装饰器详细介绍
Mar 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
世界上第一台立体声收音机
2021/03/01 无线电
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
PHP写的求多项式导数的函数代码
2012/07/04 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
webpack4简单入门实例
2018/09/06 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
python与C互相调用的方法详解
2017/07/14 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
Python 函数返回值的示例代码
2019/03/11 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
本科生学习总结的自我评价
2013/10/02 职场文书
2014村务公开实施方案
2014/02/25 职场文书
创建文明学校实施方案
2014/03/11 职场文书
法人委托书
2014/07/31 职场文书
好的旅游活动方案
2014/08/19 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers