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实现类的静态变量用法实例
May 08 Python
python编程嵌套函数实例代码
Feb 11 Python
python 显示数组全部元素的方法
Apr 19 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
Scrapy框架使用的基本知识
Oct 21 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
python爬虫之快速对js内容进行破解
Jul 09 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
pygame实现成语填空游戏
Oct 29 Python
np.dot()函数的用法详解
Jan 17 Python
Python 添加文件注释和函数注释操作
Aug 09 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 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技术开发技巧分享
2010/03/23 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
python字符串对其居中显示的方法
2015/07/11 Python
python实现将内容分行输出
2015/11/05 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP