【计算几何】如何计算两个圆的交点坐标

How to calculate two coordinates of the intersection points of two circles?

题目:

  给定两个圆的的方程

    (x-x1)^2+(y-y1)^2=r1^2,

    (x-x2)^2+(y-y2)^2=r2^2

  求解两个圆的交点坐标。

这种知识是高中的知识了,如果直接联立,由于计算特别暴力所以很难得到正确结果。

事实上,造成这种计算问题的结果是因为消去一个变量后,剩下变量的系数太过复杂。

我们通过更改坐标系的方法来使得另外一个系数变得简单。

我们先计算中点坐标:

圆心距:

设定两个新的正交单位向量作为新的坐标系的x和y轴,而原点为圆心线段的中点, 设为M:

在新的坐标系中, 圆1的方程变为:

           (1)

圆2的方程变为:

          (2)

联立(1)(2)两式,得到a=

  

最后的交点变换回原来的坐标

References:

https://math.stackexchange.com/questions/256100/how-can-i-find-the-points-at-which-two-circles-intersect

原文地址:https://www.cnblogs.com/wangzming/p/8338142.html

时间: 2024-11-09 00:46:19

【计算几何】如何计算两个圆的交点坐标的相关文章

poj 3384 Feng Shui 半平面交的应用 求最多覆盖凸多边形的面积的两个圆 的圆心坐标

题目来源: http://poj.org/problem?id=3384 分析: 用半平面交将多边形的每条边一起向"内"推进R,得到新的多边形(半平面交),然后求多边形的最远两点. 代码如下: const double EPS = 1e-10; const int Max_N = 105 ; struct Point{ double x,y; Point(){} Point(double x, double y):x(x),y(y){} Point operator - (Point

详细介绍如何计算两条折线的交点并使用Echarts展示以及图表优化

1.背景 前段时间公司有个需求,需要在一个图表中展示两条折线,并且绘制出两条线的交点.为了满足需求大哥的需求,我也是着实想了有一会.下面我就把具体的实现过程给大家展示一下. 1.1.ECharts 简介 个人很喜欢Echarts这个图表库,就先给大家介绍一下,方便大家更好的了解. ECharts 是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图

[计算几何]求两个圆相交的交点坐标

很多人都说用角度误差大,今天学了不用角度的两种方法 https://blog.csdn.net/zx3517288/article/details/53326420 写个板子 方法一 方法二 原文地址:https://www.cnblogs.com/KonjakJuruo/p/9723156.html

POJ 2546 Circular Area(两个圆相交的面积)

题目链接 题意 : 给你两个圆的半径和圆心,让你求两个圆相交的面积大小. 思路 : 分三种情况讨论 假设半径小的圆为c1,半径大的圆为c2. c1的半径r1,圆心坐标(x1,y1).c2的半径r2,圆心坐标(x2,y2). d为两圆圆心连线的长度. 相交面积为S d=sqrt((x1-x2)^2+(y1-y2)^2) (1)如果r1+r2<=d 那么两圆相离,相交面积S=0 (2)如果r2-r1>=d 那么半径小的圆内含半径大的圆,那么相交面积为小圆的面积S=pi*r1*r1 (3)既非(1)

计算扇形与圆的交点

效果图: 算法: 基本思路是检测圆和圆的交点,检测扇形边和圆的交点,其中圆和圆的交点还要判断点是否在扇形的角度内部.判断方法参考: http://stackoverflow.com/questions/13652518/efficiently-find-points-inside-a-circle-sector 交点判断方法可以看之前的博客 internal class MathEx { /// <summary> /// 浮点类型的精度要求 /// </summary> publ

Gym - 101915B Ali and Wi-Fi 计算几何 求两圆交点

题面 题意:给你n个圆,每个圆有一个权值,你可以选择一个点,可以获得覆盖这个点的圆中,权值最大的m个的权值,问最多权值是多少 题解:好像是叙利亚的题....我们画画图就知道,我们要找的就是圆与圆交的那部分里面的点,我们再仔细看看, 2个圆的交点一定在啊! 别急啊,两个圆包含了,都是交点,取哪呢?当然小圆圆心就够了啊(圆又不多,写的时候直接把所有的圆心都丢进去了) 然后枚举判断每个点有没有被在m个圆中就行了,这里维护最大的m个,用个堆就好了 1 #include<bits/stdc++.h> 2

poj 1269 Intersecting Lines(判断两直线关系,并求交点坐标)

Intersecting Lines Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12421   Accepted: 5548 Description We all know that a pair of distinct points on a plane defines a line and that a pair of lines on a plane will intersect in one of three

实验12:Problem D: 判断两个圆之间的关系

Home Web Board ProblemSet Standing Status Statistics Problem D: 判断两个圆之间的关系 Problem D: 判断两个圆之间的关系 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 381  Solved: 325[Submit][Status][Web Board] Description 定义Point类,包括double类型的两个属性,分别表示二维空间中一个点的横纵坐标:定义其必要的构

第十二周项目4-3:点,圆的关系-输出线和圆的交点

问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:project.cpp *作 者:陈文青 *完成日期:2015年5月31日 *版 本 号:v1.0 * *问题描述: (6)与圆心相连的直线:给定一点p,其与圆心相连成的直线,会和圆有两个交点,如图.在上面定义的Point(点)类和Circle(圆)类基础上, 设计一种方案,输出这两点的坐标. *程序输入: *程序输出: */ #include <ios