对于两圆的位置一般有五种关系:

(1) 外离:两圆的半径之和小于两圆圆心距离

(2) 外切:两圆的半径之和等于两圆圆心距离

(3) 相交:两圆的半径之和大于两圆圆心距离,两圆圆心距离大于两圆半径之差

(4) 内切:两圆的半径之差等于两圆圆心距离

(5) 内含:两圆的半径之差小于两圆圆心距离

具体实现C++代码如下:

#include<iostream>
#include<cmath>
using namespace std;
class Point {
private:
double m_x,m_y;
public:
void set(double x, double y) {
m_x = x; m_y = y;
}
double dispoint(Point& another) {
return hypot(m_x - another.m_x, m_y - another.m_y);
}
};
class Circle {
private:
double m_r;
Point p;
public:
void set(double x, double y) {
p.set(x, y);
}
void setr(double r) {
m_r = r;
}
int judge(Circle &another) {
double rr = m_r + another.m_r;
double rs = fabs(m_r - another.m_r);
double dis = p.dispoint(another.p);
if (rr == dis) return 1; //外切
else if (rr < dis) return 2; //外离
else if (dis<rr && dis>rs) return 3;//相交
else if (rs == dis) return 4;//内切
else if (rs > dis) return 5;//内含
}
};
void main() {
Circle c1, c2;
double x, y,r,jude;
cout << "请输入圆1x坐标:" << endl;
cin >> x;
cout << "请输入圆1y坐标:" << endl;
cin >> y;
c1.set(x, y);
cout << "请输入圆1半径:" << endl;
cin >> r;
c1.setr(r);
cout << "请输入圆2x坐标:" << endl;
cin >> x;
cout << "请输入圆2y坐标:" << endl;
cin >> y;
c2.set(x, y);
cout << "请输入圆2半径:" << endl;
cin >> r;
c2.setr(r);
jude = c1.judge(c2);
if (jude == 1) {
cout << "两圆相外切" << endl;
}
else if (jude == 3) {
cout << "两圆相交" << endl;
}
else if(jude == 2) {
cout << "两圆相外离" << endl;
}
else if (jude == 4) {
cout << "两圆相内切" << endl;
}
else if (jude == 5) {
cout << "两圆相内含" << endl;
}
system("pause");
}

转载于:https://www.cnblogs.com/ggdeblog/p/10977551.html

c++ 判断两圆位置关系相关推荐

  1. 直线与圆位置关系的c语言,直线与圆的位置关系教学设计范文

    直线与圆的位置关系教学设计范文 教学目标: (一) 教学知识点: 1. 了解直线与圆的三种位置关系. 2. 了解圆的切线的概念. 3. 掌握直线与圆位置关系的性质. (二) 过程目标: 1. 通过多媒 ...

  2. 直线与圆位置关系的c语言,直线和圆的位置关系说课稿

    直线和圆的位置关系说课稿 作为一名老师,通常需要用到说课稿来辅助教学,说课稿是进行说课准备的文稿,有着至关重要的作用.写说课稿需要注意哪些格式呢?以下是小编收集整理的直线和圆的位置关系说课稿,仅供参考 ...

  3. c++定义圆类、点类,通过求两点距离判断两圆的位置关系

    //以下是三个头文件 //AdvCircle.h #pragma once class AdvCircle { public:     void setCircle(int _r, int _x0, ...

  4. 【判断直线相对位置关系】 POJ 1269

    月光林地传送门 [题目大意]给定n组数据,每一组数据是四个互不相同的点,前两个点P1,P2表示直线l1,后两个点Q1,Q2表示直线l2. 给你P1,P2,Q1,Q2的坐标,判断l1和l2的关系[平行. ...

  5. 【C刷题记录】点、圆位置关系

    题目: 判断二维空间中的点,是否在圆内(输出:该点在圆内.该点在圆上.该点在圆外). 允许的误差为1e-6. **输入格式要求:"%f,%f" "%f" &qu ...

  6. 两圆圆心距离计算及位置关系判断(C++实现)

    实验目的 学习友元函数的定义与调用,理解友元函数的意义. 实验原理 友元函数时在类中用关键字 friend修饰的函数,是类的非成员函数,但是它可以通过对象名访问类的私有和保护成员 利用圆心距与两圆半径 ...

  7. 直线与圆的位置关系怎么判断

    <直线与圆的位置关系>这个知识点应用比较广泛,是几何知识的一个综合运用,在今后的解题及几何证明中,将起到重要的作用,所以就必须熟练掌握它们之间有哪些位置关系.为了更好地理解,我们可以借助数 ...

  8. JS魔法堂:判断节点位置关系

    一.前言 在polyfill querySelectorAll 和写弹出窗时都需要判断两个节点间的位置关系,通过jQuery我们可以轻松搞定,但原生JS呢?下面我将整理各种判断方法,以供日后查阅. 二 ...

  9. c语言 两条线段位置,C++/STL实现判断平面内两条线段的位置关系代码示例

    概念 平面内两条线段位置关系的判定在很多领域都有着广泛的应用,比如游戏.CAD.图形处理等,而两线段交点的求解又是该算法中重要的一环.本文将尽可能用通俗的语言详细的描述一种主流且性能较高的判定算法. ...

最新文章

  1. python 创建只读的函数(@property的介绍与使用)
  2. 用php计算自由落体,js模仿物理中的自由落体现象
  3. 北海a货翡翠,牡丹江a货翡翠
  4. IA32中栈帧结构图
  5. AI理论知识整理(13)-标准基
  6. 用OKR拆解法,做产品规划
  7. 七种寻址方式(直接寻址方式)
  8. JAVA中ByteArrayInputStream和ByteArrayOutputStream详解
  9. MongoDB C#:如何将包含DateTime的JSON反序列化为正确的BsonDocument DateTime值
  10. Maven STS创建WEB项目
  11. [NowCoder]牛客网NOIP赛前集训营-提高组(第六场)题解
  12. 吴颖二:12.27 什么是现货,如何操作才能盈利
  13. Vue-计算属性与事件监听
  14. Windows 终端常用命令,必备!
  15. 独家中文汉化AE脚本 Animation Studio v2.3 Win/Mac一键安装版 预设持续更新 支持CC2020
  16. 关于微信群、QQ群和其他发布平台
  17. PAKDD2020 Alibaba AI Ops Competition
  18. 阿里云计算ACA认证攻略
  19. 不同类型的轴承受力简介
  20. 心知天气API如何调用与json数据如何显示

热门文章

  1. 2020年5月年长沙市公安局通报10起典型电信网络诈骗案例:2小时被骗1919万元!
  2. Cell HostMicrobe | 两株益生菌或能替代抗生素预防仔猪早期断奶腹泻
  3. WEB前端面试2014阿里旺旺 1
  4. hadoop配置遇到问题的解决
  5. 集成AD域,前端实现免登录
  6. Execution failed for task ':app:processDebugManifest'
  7. 「Branching Model」- 分支模型 @20210329
  8. 承德石油高等专科学校计算机20019年,承德石油高等专科学校2019年高职扩招录取人数...
  9. 如何搭建完整的docker版ubuntu
  10. 【学生管理系统】学生管理(重点)