Python - 两圆相交求交点坐标

Max.Bai

2016-05-16

Python - 两圆相交求交点坐标

三轴机械臂求坐标问题,其实转化为平面问题就是两圆相交求交点问题,交点算出来就可以用反三角函数算出各个机械臂的夹角。

已知圆1, 半径R, 坐标(x, y)

圆2, 半径S, 坐标(a, b)

求两圆交点x3, y3   x4, y4。

算法一脚本:

# -*- coding: utf-8 -*-

import math

def sq(x):

return float(x * x)

# target point on table

tx = float(10)

ty = float(10)

# hight of table

h0 = float(5)

# length of arm

R = float(10)

S = float(8)

# arm point

x = float(0)

y = float(5)

# target point for arm

a = float(math.sqrt(sq(tx)+ sq(ty)))

b = h0

print "arm target:", a, b

d = math.sqrt(sq(math.fabs(a-x)) + sq(math.fabs(b-y)))

print "desitens:", d

if d > (R+S) or d < (math.fabs(R-S)):

print "This point can't be rached!"

#return -1

exit

if d == 0 and R==S :

print "Can't rach arm point!"

#return -2

exit

A = (sq(R) - sq(S) + sq(d)) / (2 * d)

h = math.sqrt(sq(R) - sq(A))

x2 = x + A * (a-x)/d

y2 = y + A * (b-y)/d

#print x2, y2

x3 = x2 - h * ( b - y ) / d

y3 = y2 + h * ( a - x ) / d

x4 = x2 + h * (b - y) / d

y4 = y2 - h * (a - x) / d

print "arm middle point:"

print x3, y3

print x4, y4

已知圆1, 半径L1, 坐标(0, L3)

圆2, 半径L2, 坐标(x, y)

求圆1交点与圆心连线和Y轴的夹角a1,

圆2交点与圆心连线和X轴的夹角a2。

算法二:

# -*- coding: utf-8 -*-

import math

L1 = float(10)

L2 = float(10)

L3 = float(5)

x = float(14.1421356237)

y = float(5)

def sq(x):

return x * x

A = float(-2 * x * L1)

B = float(2*(y-L3)*L1)

C = float(sq(L2) - sq(L1) - sq(x) -sq(y-L3))

a1 = float(2*math.atan((B-math.sqrt(sq(B)+sq(A)-sq(C)))/(A+C)))

A = float(2 * (y - L3) * L2)

B = float(2 * x * L2)

C = float(sq(L2) + sq(x) + sq(L3-y) -sq(L1))

a2 = float(2* math.atan((B-math.sqrt(sq(B)+sq(A)-sq(C)))/(A+C)))

print a1, a2

print a1*180/math.pi, a2*180/math.pi

python求交点坐标_Python - 两圆相交求交点坐标相关推荐

  1. 两圆相交求面积 hdu5120

    转载 两圆相交分如下集中情况:相离.相切.相交.包含. 设两圆圆心分别是O1和O2,半径分别是r1和r2,设d为两圆心距离.又因为两圆有大有小,我们设较小的圆是O1. 相离相切的面积为零,代码如下: ...

  2. 求解两圆相交的交点坐标

    今天遇到了一个问题,要求两个相交圆的交点坐标,用了三种不同方法求解,其中纯代数方法求解比较麻烦,这里没有贴出来.暂时只推导了公式,明天再写程序,程序写好后会更新到博客,如果大家有其它的方法,欢迎一起探 ...

  3. 求两圆相交的交点的方法

    最近研究三角定位算法,研究了下怎样求两圆的交点,现给出求解方法:

  4. 求任意两圆相交的面积(不限程序设计语言版本)

    无所谓程序设计语言,不过是表达形式不一罢了 题目来源 理论知识 参考知识: 代码实现 C# 鼠标悬停此处预览测试样例 Java 鼠标悬停于此预览测试样例 Kotlin C++ C Python Jav ...

  5. 求两圆相交面积(模板)

    两圆相交分如下集中情况:相离.相切.相交.包含. 设两圆圆心分别是O1和O2,半径分别是r1和r2,设d为两圆心距离.又因为两圆有大有小,我们设较小的圆是O1. 相离相切的面积为零,代码如下: dou ...

  6. Square Card 计算几何-两圆相交面积

    题意 : 给两个圆,分别代表得分区域和奖励区域,边长为a的正方形以均等概率扔到平面后绕中心旋转,保证一定会有某时刻正方形完全在得分区域内. 如果某时刻正方形完全落在区域内,获得相应分数,求正方形 既获 ...

  7. MATLAB求图片两圆圆心,求助:如何求此图中两圆的圆心距?

    对于你给出的图片,我根据之前提到的思路编写了以下程序.感觉还蛮准的.这个程序只能用于两圆相交的情况.当小圆在大圆内部时,需要在其中加以判定.仅供参考. clear;clc c = imread('1. ...

  8. 简单多边形与圆相交求面积

    简单多边形与圆相交求面积 简单多边形的有向面积 简单多边形与圆相交的有向面积 圆心三角形与圆相交求面积 简单多边形与圆相交的有向面积 简单多边形的有向面积 所谓简单多边形,就是指不相邻的边不相交,且每 ...

  9. python交并补_python两个列表求交、并、差

    在python中,如果有两个数组,分别要求交集,并集与差集,怎么实现比较方便呢? 当然最容易想到的是对两个数组做循环,即写两个for循环来实现.这种写法大部分同学应该都会,而且也没有太多的技术含量,下 ...

最新文章

  1. 64位Ubuntu上编译32位程序
  2. 在Office 2007 Word文档中插入两种页码方法
  3. 【Linux】一步一步学Linux——ssh-copy-id命令(180)
  4. ffmpeg 命令画中画效果
  5. java学习(97):中断线程的另一种处理
  6. 【常见问题】hive、Hadoop(HA)、sqoop出现的问题的总结---各种问题以及解决方案-
  7. java 音频 api_Java中的接口
  8. LeetCode962. 最大宽度坡
  9. [深度学习] ImageAI库使用笔记
  10. java Web中实现QQ邮箱验证以及验证码注册用户
  11. 响应式美容美发形象设计艺术教育学校网站织梦模板源码
  12. JavaTutorials之Operators
  13. linux系统下find删除目录下除一文件外的所有文件
  14. 基于python的网络聊天室论文_Python基于Socket实现简单聊天室
  15. win10应用商店里的应用提取
  16. 山东理工acm 3926 bLue的二叉树
  17. stm32复位引脚NRST
  18. 视频下载工具—you-get
  19. AV-TEST给出Android平台最佳防毒软件排名
  20. 征战星辰大海,从这里开始

热门文章

  1. 深度学习调参tricks总结
  2. 智慧能耗在线监测系统
  3. Flink重写Iceberg数据湖小文件变大文件
  4. Linux 学习之旅
  5. 无人驾驶感知篇之融合(十四)
  6. HDD Regenerator硬盘坏道修复工具使用傻瓜教程
  7. 树莓派2B 的无线网络配置
  8. 视频编辑大师:Movavi Video Editor 15 Business Mac
  9. 拼插机器人课和围棋课_我做了一个小程序,里面有各种乐高拼搭图纸和案例
  10. type在python中的用法_Python type的使用