Home Web Board ProblemSet Standing Status Statistics
 

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

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

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 381  Solved: 325
[Submit][Status][Web Board]

Description

定义Point类,包括double类型的两个属性,分别表示二维空间中一个点的横纵坐标;定义其必要的构造函数和拷贝构造函数。

定义Circle类,包括Point类的对象和一个double类型的数据作为其属性,分别表示圆心坐标及半径;定义其必要的构造函数、拷贝构造函数。定义Circle类的成员函数:

int JudgeRelation(const Circle& another)

用于判断当前圆与another之间的位置关系。该函数的返回值根据以下规则确定:当两个圆外离时返回1;当两个圆内含时返回2;当两个圆外切时返回3; 当两个圆内且时返回4;当两个圆相交时返回5。

Input

第1行N>0表示测试用例个数。

每个测试用例包括2行,第1行是第1个圆的位置及半径;第2行是第2个圆的位置和半径。

Output

每个测试用例对应一行输出,输出两个圆之间的位置关系。见样例。

Sample Input

5
0 0 10
20 20 1
0 0 10
1 1 4
0 0 10
0 20 10
0 0 10
0 5 5
0 0 10
15 0 10

Sample Output

Outside
Inside
Externally tangent
Internally tangent
Intersection

HINT

外离与内含均指两个圆没有任何交点,但内含是指一个圆完全包含在另一个的内部,否则便是外离。

Append Code

[Submit][Status][Web Board]

#include<iostream>
#include<cmath>
using namespace std;
class Point{
public:
double x,y;
Point(double a=,double b=):x(a),y(b){}
~Point(){}
};
class Circle{
friend class Point;
public:
Point p;
double r;
Circle(Point a,double R):p(a),r(R){}
~Circle(){}
int JudgeRelation(const Circle& cc)
{ double dc=sqrtl((cc.p.x - p.x)*(cc.p.x - p.x)+(cc.p.y - p.y)*(cc.p.y - p.y)); if(fabs(dc - (r + cc.r)) < 1e-) {
return ;
}
if(fabs(dc - fabs(r - cc.r)) < 1e-)
{
return ;
} if(dc < fabs(r - cc.r))
return ; if(dc > r + cc.r)
return ; return ;
}
};
int main()
{
int cases;
double x, y, r;
cin>>cases;
for (int i = ; i < cases; i++)
{
cin>>x>>y>>r;
Point p1(x,y);
Circle c1(p1, r);
cin>>x>>y>>r;
Point p2(x, y);
Circle c2(p2, r);
switch(c1.JudgeRelation(c2))
{
case :
cout<<"Outside"<<endl;
break;
case :
cout<<"Inside"<<endl;
break;
case :
cout<<"Externally tangent"<<endl;
break;
case :
cout<<"Internally tangent"<<endl;
break;
case :
cout<<"Intersection"<<endl;
}
}
}

实验12:Problem D: 判断两个圆之间的关系的更多相关文章

  1. GetParent、SetParent、MoveWindow - 获取、指定父窗口和移动窗口,IsChild - 判断两个窗口是不是父子关系

    提示: SetParent 应该 Windows.SetParent, 因为 TForm 的父类有同名方法. //声明: {获取父窗口句柄} GetParent(hWnd: HWND): HWND; ...

  2. EF数据存贮问题二之“无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象”

    “无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象”,这是在EF中,一对多关系表,有外键的类保存至数据库中出现的错误. 我原来是用JAVA开发的,习惯性的处理一对多 ...

  3. C++ 判断两个圆是否有交集

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include <math.h> #include <easyx.h ...

  4. 判断两条直线的位置关系 POJ 1269 Intersecting Lines

    两条直线可能有三种关系:1.共线     2.平行(不包括共线)    3.相交. 那给定两条直线怎么判断他们的位置关系呢.还是用到向量的叉积 例题:POJ 1269 题意:这道题是给定四个点p1, ...

  5. cc.isChildClassOf 判断两个类的继承关系

    使用 cc.isChildClassOf 来判断两个类的继承关系: var Texture = cc.Class(); var Texture2D = cc.Class({ extends: Text ...

  6. HDU 1086You can Solve a Geometry Problem too(判断两条选段是否有交点)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1086 判断两条线段是否有交点,我用的是跨立实验法: 两条线段分别是A1到B1,A2到B2,很显然,如果 ...

  7. iOS 判断两个日期之间的间隔

    本文转载至 http://www.cnblogs.com/Ewenblog/p/3891791.html   两个时间段,判断之间的相差,做一些时间范围限制使用 NSDateFormatter * d ...

  8. [fzu 2273]判断两个三角形的位置关系

    首先判断是否相交,就是枚举3*3对边的相交关系. 如果不相交,判断包含还是相离,就是判断点在三角形内还是三角形外.两边各判断一次. //http://acm.fzu.edu.cn/problem.ph ...

  9. POJ 1269 /// 判断两条直线的位置关系

    题目大意: t个测试用例 每次给出一对直线的两点 判断直线的相对关系 平行输出NODE 重合输出LINE 相交输出POINT和交点坐标 1.直线平行 两向量叉积为0 2.求两直线ab与cd交点 设直线 ...

随机推荐

  1. jQuery---EasyUI小案列

    jQuery EasyUI为提供了大多数UI控件的使用,如:accordion,combobox,menu,dialog,tabs,validatebox,datagrid,window,tree等等 ...

  2. Java -- 获取当前日期、当月月初日期、月末日期

    Learn From:http://blog.csdn.net/sunhuwh/article/details/39161323 public class CalendarTest { public ...

  3. swift实现冒泡排序

    刚刚坐着没事干,就用swift语言写了写冒泡排序,还望高手指点.拍砖!哈哈! 废话不多说,上代码! import Cocoa var array = [,,,,,,,,,,,,,,,,,] print ...

  4. 前端们,gulp该用起来了,简单的demo入门——gulp系列(一)

    gulp.grunt前端自动化工具,只有用过才知道多么重要. 它们问世这么久了?你真的用过吗? 写个简单的less.watch任务的demo分享———— 1.准备: 安装全局node.npm,这个教程 ...

  5. Click Models for Web Search(2) - Parameter Estimation

    在Click Model中进行参数预估的方法有两种:最大似然(MLE)和期望最大(EM).至于每个click model使用哪种参数预估的方法取决于此model中的随机变量的特性.如果model中的随 ...

  6. LeetCode——Gray Code

    Description: The gray code is a binary numeral system where two successive values differ in only one ...

  7. 性能测试类,让你写法代码养成经常测试的好习惯 -ASP.NET C#

    介绍: 可以很方便的在代码里循环执行 需要测试的函数  自动统计出执行时间,支持多线程. 使用方法: PerformanceTest p = new PerformanceTest(); p.SetC ...

  8. css知识

    margin和padding是什么意思 margin外边距,padding内边距,外边距表示一个元素的边到相邻元素的距离,内边距表示元素之间的内容和元素边框的距离. font:12px/1.5 表示什 ...

  9. 【UWP】对 Thickness 类型属性进行动画

    好几个月没写 blog 了,一个是在忙新版的碧影壁纸,另一方面是等(观望)周年更新的 api(不过现在还是比较失望,仍然没法支持矩形以外的 Clip).闲话少说,进入主题. 在 UWP 中,出于性能考 ...

  10. petapoco-SQLServer模型增加注释

    petapoco是个基于T4模板的轻量级ORM,好用效率高,具体介绍略了 获取注释基本原理是调用数据库::fn_listextendedproperty函数,获取扩展属性MS_Description ...