题目链接

判断圆和三角形是否相交   可以转化为   判断三条线段是否和圆相交

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long LL;const double eps=1e-8;struct point
{double x,y;point operator -(const point& rhs){point ret;ret.x=x-rhs.x;ret.y=y-rhs.y;return ret;}double operator *(const point& rhs)//“叉乘”
    {return x*rhs.y-y*rhs.x;}double operator ^(const point& rhs)//“点乘”
    {return x*rhs.x+y*rhs.y;}
}a[3],o;
double r;double dist(point a,point b)    //求点a,b的距离
{double x=a.x-b.x,y=a.y-b.y;return sqrt(x*x+y*y);
}
bool seg_cir(point a,point b)    //判断线段ab是否与圆o相交
{if(dist(a,o)<r-eps&&dist(b,o)<r-eps)return false;else if((r-dist(a,o))*(r-dist(b,o))<=eps)return true;else{if(((b-a)^(o-a))<0||((a-b)^(o-b))<0)return false;double h=(a-o)*(b-o)/dist(a,b);h=fabs(h);
//        printf("%lf   %lf\n",(b-a)*(o-a),(a-b)*(o-b));
//        cout<<h<<"=========\n";return h<r+eps;}
}
bool ok()
{for(int i=0;i<3;i++)if(seg_cir(a[i],a[(i+1)%3]))return true;return false;
}int main()
{int T;cin>>T;while(T--){cin>>o.x>>o.y>>r;for(int i=0;i<3;i++)cin>>a[i].x>>a[i].y;if(ok()) puts("Yes");else puts("NO");}
}

转载于:https://www.cnblogs.com/Just--Do--It/p/6407443.html

51nod 1298:圆与三角形(计算几何)相关推荐

  1. 51Nod 1298 圆与三角形

    题目链接: 51Nod 1298 圆与三角形 题目描述: 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No". ...

  2. 51nod 1298 圆与三角形

    1298 圆与三角形 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三 ...

  3. 51Nod 1298 圆与三角形相交 计算几何

    51Nod-1298-圆与三角形 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). ...

  4. (图论)51NOD 1298 圆与三角形

    给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). 输入 第1行:一个数T,表示输入 ...

  5. 51nod 1298 圆与三角形(几何知识)

    Description 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). Inpu ...

  6. 51nod 1298

    1298 圆与三角形 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三 ...

  7. 51Nod-1298 圆与三角形

    1298 圆与三角形 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三 ...

  8. 51Nod 圆与三角形

    给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). Input 第1行:一个数T,表 ...

  9. 51Nod - 1298(点到线段的距离)

    链接:51Nod - 1298 题意: 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于 ...

最新文章

  1. UNIX环境高级编程》笔记--getrlimit和setrlimit函数
  2. 类加载的三个阶段——加载、链接以及初始化,类的主动使用和被动使用
  3. 整型的赋值超出该类型的取值范围
  4. Python3赋值运算符
  5. 辽宁计算机专业院校排名2015,liaoning高校排行榜_辽宁高校排名 2015年辽宁省最佳大学排行榜...
  6. 用户调用机房收费下机中用到的策略与职责链解析
  7. latex如何取消自动编号_latex 取消自动编号
  8. c语言小游戏跳一跳代码及注释,c语言小游戏程序之弹跳小球的实现代码
  9. 2021年中国消费金融行业贷款情况及发展趋势分析:互联网消费金融放款规模达到20.2万亿[图]
  10. Ajax访问接口报错NET::ERR_CERT_REVOKED
  11. wishbone bus
  12. php访问微信云数据库,第三方服务器php获取微信小程序云开发access_token和云数据库...
  13. html左侧导航菜单多级,css3多级菜单导航栏、侧边菜单栏
  14. html5 audio音乐播放,循环播放等9款播放器
  15. 新的开始,与大学告别
  16. 认识Python控制流
  17. 【QT】Windows下QT下载安装
  18. python编程水上行走_普通人如何水上行走,只要速度足够的快,何愁不能水上漂...
  19. Android9--android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
  20. 浅谈初中计算机机房管理,浅谈高校计算机机房管理.pdf

热门文章

  1. Docker基础技术:Linux Namespace【上】
  2. 从GNOME切换到KDE了
  3. 如何使用Scala的ClassTag
  4. Hbase数据存储架构
  5. Oracle笔记 十、PL/SQL存储过程
  6. jquery如何判断div是否隐藏
  7. 20160531-20160607springmvc入门
  8. 在linux和windows下自动备份数据库
  9. windows7与虚拟机fedora 9.0文件共享
  10. atmega8 例程:T1定时器 快速PWM