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框架实现一个简单的WebQQ机器人
Apr 24 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
Django之无名分组和有名分组的实现
Apr 16 Python
Python箱型图处理离群点的例子
Dec 09 Python
django框架中间件原理与用法详解
Dec 10 Python
python学生信息管理系统实现代码
Dec 17 Python
Pytorch之finetune使用详解
Jan 18 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
Django-migrate报错问题解决方案
Apr 21 Python
Python类super()及私有属性原理解析
Jun 15 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 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初学者头疼问题总结
2006/07/08 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
window.open的功能全解析
2006/10/10 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
Python代码需要缩进吗
2020/07/01 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
党校培训自我鉴定
2014/02/01 职场文书
应届生找工作求职信
2014/06/24 职场文书
超市店庆活动方案
2014/08/31 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
Python实现天气查询软件
2021/06/07 Python
Python中else的三种使用场景
2021/06/16 Python
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
Go语言并发编程 sync.Once
2021/10/16 Golang
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技