【圆与三角形】第一次OJ的总结

该博客总结了如何判断二维平面上的圆和三角形是否有交集的问题。通过分类讨论,包括三角形顶点在圆内、圆外等情况,结合边与圆的关系,利用垂足和余弦值来确定交集状态。博主提到在OJ中,cin和cout的效率并不一定低于scanf和printf,但在内存使用上推荐使用后者。
摘要由CSDN通过智能技术生成

2018/10/6

鸽了许久,但还是要做一下总结。

问题描述:

给定二维平面上的一个圆和一个三角形,视两者为两个点集C和T。C和T均不包含图形的内部,仅包含图形的边界。判断集合C和T的交集是否非空。

输入格式:

(第一行)正整数N,代表接下来有N组测试数据。
(接下来的N行,每一行格式是:)r x0 y0 x1 y1 x2 y2 x3 y3 (解释:r为圆半径,(x0, y0)为圆心坐标,(x1,y1), (x2,y2), (x3,y3)为三角形3个顶点坐标)

数据范围:

0<N<1,000,000

横、纵坐标属于区间[-1000, 1000]

输出格式:

一共N行,每行输出数字0或1。若C和T交集非空,输出1;若C和T交集为空集,输出0.

输入样例:

2
1 0 0 5 5 6 6 7 4
1 0 0 0 2 1 -1 2 1

输出样例:

0
1

简而言之就是判断圆和三角形有无交点。

我们分类讨论:

    1.三角形的三个顶点都在圆内,不可能相交;

    2. 三角形的三个顶点都在圆外,需要另外讨论;

    3.其余情况,此时一定相交。

接下来对单个顶点都在圆外的情况继续加以讨论。分别判断三条边与圆的相交关系。需要注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值