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实现批量转换文件编码的方法
Jul 28 Python
Python中防止sql注入的方法详解
Feb 25 Python
Python使用pylab库实现画线功能的方法详解
Jun 08 Python
Python实现翻转数组功能示例
Jan 12 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
Flask之flask-script模块使用
Jul 26 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
Python3基于plotly模块保存图片表格
Aug 03 Python
python利用opencv保存、播放视频
Nov 02 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 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字符串处理的10个简单方法
2010/06/30 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
Python编程入门的一些基本知识
2015/05/13 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
python实现在一个画布上画多个子图
2020/01/19 Python
python next()和iter()函数原理解析
2020/02/07 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
高三毕业生自我鉴定
2013/12/20 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
模范教师事迹材料
2014/12/16 职场文书
就业意向书范本
2015/05/11 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL