HDU4720+三角形外接圆
/*
几何
求给定三角形的外接圆圆心
方法:求解二元方程组
*/
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
const double pi = acos(-1.0);
const double eps = 1e-;
struct Point{
double x,y;
};
struct Circle{
Point center;
double r;
};
Point a,b,c,tp;
Circle cc; double dis( Point a,Point b ){
return sqrt( (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y) );
} bool JudgeTriangle( Point a,Point b,Point c ){
double len1 = dis( a,b );
len1 *= len1;
double len2 = dis( a,c );
len2 *= len2;
double len3 = dis( b,c );
len3 *= len3;
if( len1+len2-len3<=||len1+len3-len2<=||len2+len3-len1<= ) return false;
else return true;
}/*判断是否是钝角三角形*/ void GetCircle( Point a,Point b,Point c ){
bool judge = JudgeTriangle( a,b,c );
if( judge==false ){
double ans;
int op ;
double len1 = dis( a,b );
ans = len1;
op = ;
double len2 = dis( a,c );
if( len2>ans ){
ans = len2;
op = ;
}
double len3 = dis( b,c );
if( len3>ans ){
ans = len3;
op = ;
}
cc.r = ans / 2.0;
if( op== ){
cc.center.x = ( a.x+b.x )/2.0;
cc.center.y = ( a.y+b.y )/2.0;
}
else if( op== ){
cc.center.x = ( a.x+c.x )/2.0;
cc.center.y = ( a.y+c.y )/2.0;
}
else {
cc.center.x = ( b.x+c.x )/2.0;
cc.center.y = ( b.y+c.y )/2.0;
}
return ;
}/*钝角三角形*/
double x1 = a.x,x2 = b.x,x3 = c.x;
double y1 = a.y,y2 = b.y,y3 = c.y;
cc.center.x=((y2-y1)*(y3*y3-y1*y1+x3*x3-x1*x1)-(y3-y1)*(y2*y2-y1*y1+x2*x2-x1*x1))/(*(x3-x1)*(y2-y1)-*((x2-x1)*(y3-y1)));
cc.center.y=((x2-x1)*(x3*x3-x1*x1+y3*y3-y1*y1)-(x3-x1)*(x2*x2-x1*x1+y2*y2-y1*y1))/(*(y3-y1)*(x2-x1)-*((y2-y1)*(x3-x1)));
cc.r = dis( cc.center,a );
return ;
}/*求外接圆圆心*/ int main(){
int T;
scanf("%d",&T);
int ca = ;
while( T-- ){
scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y,&c.x,&c.y,&tp.x,&tp.y);
GetCircle( a,b,c );
printf("Case #%d: ",ca++);
if( dis( tp,cc.center )<=cc.r ) printf("Danger\n");
else printf("Safe\n");
}
return ;
}
HDU4720+三角形外接圆的更多相关文章
- POJ 1329 Circle Through Three Points(三角形外接圆)
题目链接:http://poj.org/problem?id=1329 #include<cstdio> #include<cmath> #include<algorit ...
- hdu4720 三角形的外接圆
题意: 给你四个点,问你第四个点是否在前三个点围成的三角形的外接圆上. 思路: 水题,就是练练用魔板罢了,当该三角形是锐角三角形的时候,圆心是任意两条边中垂线的交点,半径是圆心 ...
- poj1266Cover an Arc(三角形外接圆)
链接 求出三角形的外接圆,通过圆心和半径可以知道这个圆的上下左右最远点,分别判断这个四个点跟弧的两端点A,B的关系,假如判断P点,弧内给出点为C,判断PC是否与AB相交即可判断出P是否在弧上. 精度问 ...
- matlab练习程序(三角形外接圆)
三角形两边的垂直平分线就能确定外接圆. 结果如下: matlab代码如下: clear all;close all;clc; p=rand(,); %(x,y) cen1=(p(,:)+p(,:))/ ...
- poj1329Circle Through Three Points(三角形外接圆)
链接 套模板 不知道有没有x,y=0情况,不过这种情况都按+号输出的. #include <iostream> #include<cstdio> #include<cst ...
- 算法笔记_082:蓝桥杯练习 12-1三角形(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体.分别设计独立的函数计算三角形的周长.面积.中心和重心.输入三个点,输出这 ...
- [GodLove]Wine93 Tarining Round #9
比赛链接: http://vjudge.net/contest/view.action?cid=48069#overview 题目来源: lrj训练指南---二维几何计算 ID Title Pro ...
- [转] POJ计算几何
转自:http://blog.csdn.net/tyger/article/details/4480029 计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板 ...
- HDU 3007 Buried memory & ZOJ 1450 Minimal Circle
题意:给出n个点,求最小包围圆. 解法:这两天一直在学这个神奇的随机增量算法……看了这个http://soft.cs.tsinghua.edu.cn/blog/?q=node/1066之后自己写了好久 ...
随机推荐
- Ibatis.net防Sql注入
sql注入是一个古老的话题了,但经常会被我们忽略.尤其是使用了ibatis.net之后. Ibatis.net框架对sql注入问题已经做了很好的防护,但经常由于开发人员使用不当,会造成sql的注入隐患 ...
- Cocos2d-x优化中多线程并发访问
多线程并发访问在Cocos2d-x引擎中用的不是很多,这主要是因为中整个结构设计没有采用多线程.源自于Objective-C的Ref对象,需要使用AutoreleasePool进行内存管理,Autor ...
- Cocos2d-x使用UserDefault数据持久化实例:保存背景音乐和音效设置
UserDefault可以实现数据的存储,但是它的使用不能泛滥,具体讲一般情况下不会使用它保存大量的数据,它没有SQL语句那样的灵活.UserDefault除了保存游戏设置外,还有可以长期保持游戏精灵 ...
- des算法的C#实现
DES是Data Encryption Standard(数据加密标准)的缩写.它是一种通过56位密钥来加密64位数据的方法. public class EncryptUtility{ #reg ...
- OpenGL5-纹理贴图
代码下载 #include "CELLWinApp.hpp"#include <gl/GLU.h>#include <assert.h>#include & ...
- (转)Spark安装与学习
摘要:Spark是继Hadoop之后的新一代大数据分布式处理框架,由UC Berkeley的Matei Zaharia主导开发.我只能说是神一样的人物造就的神器,详情请猛击http://www.spa ...
- DEDECMS中,引入文件
引入文件:dede:include 标签:{dede:include filename="foot.htm"/}
- Linux防火墙基本知识
一.防火墙的分类 (一).包过滤防火墙. 数据包过滤(packet Filtering)技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,称为访问控制表(access control ...
- eclipse安装ermaster建模插件
下载ermaster.jar 放到plugins重启eclipse即可
- const和#define的区别
在刷题的时候经常遇到定义全局常量我一般都是用#define(可能是因为很少接触const的原因) 在昨天做到51nod1082时照常暴力用#define定义最大.可是提交超时..... 后来看他人写的 ...