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之后自己写了好久 ...
随机推荐
- using System.Threading;
/// <summary> /// 执行动作:耗时而已 /// </summary> private void TestThread(string threadName) { ...
- JS判断移动设备最佳方法
最实用的还是下面这个: 方法一:纯JS判断 使用这方法既简单,又实用,不需要引入jQuery库,把以下代码加入到<head>里即可. <script type=”text/javas ...
- JavaScript学习笔记(10)——JavaScript语法之操作DOM
1.页面输出用document.write()方法,但是不可以在window.onload中用,否则整个html页面将被覆盖. 2.通过javascript获取对象后,改变对象中的html内容:doc ...
- JS实现登录页面记住密码和enter键登录
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>按 ...
- 如何测量一个嵌入式Linux系统的功耗/power dissipation/power wastage/consumption
参考: 1.Linux Circuit Software To Calculate Power Dissipation
- Python快速入门学习笔记(三)——函数的定义与调用
定义函数 Python中定义函数的格式为: def fun([参数列表]): ... 函数在执行到return语句时结束,并将结果返回.如果没有return语句,函数执行完毕后返回None. 例: d ...
- Python 三大神器
Python 三大神器 Python 中有很多优秀的包,本文主要讲一下 pip, virtualenv, fabric 1. pip 用来包管理 文档:https://pip.pypa.io/en/l ...
- CSS3中的变形处理(transform)属性
在CSS3中,可以利用transform功能来实现文字或图像的旋转.扭曲.缩放.位移.矩阵.原点这六种类型的变形处理,下面将详细讲解transform的使用. 变形--旋转 rotate() div. ...
- mysql实例---sql语句中使用@变量
本文介绍下,在mysql语句中使用@变量的一个例子,学习下这个特殊变量的用法,有需要的朋友参考下吧. 要求: 计算用户距上次访问的天数,根据imei号区分不同的用户,如果时间段内只有一次访问则为0. ...
- Mysql 配置主从服务自动同步功能
1.修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 serve ...