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框架配置使用Jinja2模板引擎的方法
Jun 30 Python
详解Python安装scrapy的正确姿势
Jun 26 Python
Python中交换两个元素的实现方法
Jun 29 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 Python
代码实例讲解python3的编码问题
Jul 08 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 Python
python实现自动清理文件夹旧文件
May 10 Python
python爬取某网站原图作为壁纸
Jun 02 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/03 新手入门
php设计模式 Builder(建造者模式)
2011/06/26 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
Python学习笔记(二)基础语法
2014/06/06 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
批处理与python代码混合编程的方法
2016/05/19 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Python3 元组tuple入门基础
2020/02/09 Python
Python中求对数方法总结
2020/03/10 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
国际会议邀请函范文
2014/01/16 职场文书
高三高考决心书
2014/03/11 职场文书
最美家庭活动方案
2014/08/31 职场文书
融资合作协议书范本
2014/10/17 职场文书
2015年科协工作总结
2015/05/19 职场文书
导游词之西安骊山
2019/12/20 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
Tomcat用户管理的优化配置详解
2022/03/31 Servers