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之后自己写了好久 ...
随机推荐
- 动态磁盘恢复为基本磁盘--DiskGenius
近日在老电脑中安装了Win8.1,想不到使用起来比Win7还流畅. 周末,手贱,由于C盘只有10GB,为主分区,D盘有40GB,为扩展分区,想要将C.D两个分区合二为一,在Win8.1的磁盘管理器中, ...
- 使用Emmet(前身Zen Coding)加速Web前端开发
Emmet插件以前被称作为Zen Coding,是一个文本编辑器的插件,它可以帮助您快速编写HTML和CSS代码,从而加速Web前端开发.早在2009年,Sergey Chikuyonok写过一篇文章 ...
- 重建Mac系统的文件打开方式
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Ver ...
- windows下redis服务安装
1.redis简介redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...
- Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载五)Linux系统的对话方式
本篇是Linux小白最佳实践第5篇,目的就是让白菜们了解Linux进程之间是如何对话的.之前连载的几篇,在微信上引起了很多的反响,有人也反映图多文字少,感觉没有干货.本篇选了大部分是实战讲解的&quo ...
- 查看cpu、内存和硬盘
查看cpu cat /proc/cpuinfo 查看内存 top free -m 按兆为单位输出内存的已用,未用,总共等结果 cat /proc/meminfo |grep MemTotal 查看硬盘 ...
- htm5实现视差动画
requestAnimationFrame.js window.requestAnimFrame = (function() { return window.requestAnimationFrame ...
- 深度探索C++对象模型读书笔记(2)
以下测试平台均为vs 2012 指向Data Member的指针测试(1) #include <stdio.h> class Base1 { public: int val1; int v ...
- VC6配置OpenCV1.0
懒得写字,故扫描:
- php 实现 mysql数据表优化与修复
<?php $link = mysql_connect("localhost", "root", "") or die("e ...