爆头

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2827    Accepted Submission(s): 1344

Problem Description
gameboy是一个CS高手,他最喜欢的就是扮演警察,手持M4爆土匪的头。也许这里有人没玩过CS,有必要介绍一下“爆头”这个术语:所谓爆头,就是子弹直接命中对方的头部,以秒杀敌人。

现在用一个三维的直角坐标系来描述游戏中的三维空间(水平面为xoy平面,z轴正方向是上方)。假设游戏中角色的头是一个标准的球。告诉你土匪的身高,头部半径,所站位置的坐标;gameboy所控警察的身高,头部半径,所站位置的坐标,以及枪头所指方向的单位向量。gameboy所控警察所握的是M4,抢瞄准时枪膛中的子弹跟视线基本同线,我们忽略它们的距离,就当成同线。由于土匪手持AK47,所以他是很嚣张地正立着。而警察手持M4,正在瞄准,由于瞄准时身体微弯,视线从头心出发,他头部的实际高度比正立时低10%。

你的任务就是,计算gameboy在这一刻扣下扳机,能否爆土匪的头。注意:这里忽略子弹的直径和重力作用,也就是说子弹是无限小的,弹道是一条笔直的射线,警察与土匪间没有障碍物。并且只要子弹擦到头部,哪怕是边缘,也算爆头。

Input
测试数据的第一行有一个正整数T,表示有T组测试数据。每组数据的第一行有五个实数,h1,r1,x1,y1,z1,分别表示土匪的身高,头部半径以及所站的位置。第二行有八个实数,h2,r2,x2,y2,z2,x3,y3,z3,分别表示警察的身高,头部半径,所站位置,以及枪头所指方向的方向向量。
Output
每一组输入数据对应一行输出。如果能爆土匪的头,输出"YES",否则输出"NO"。
Sample Input
2 1.62 0.1 10.0 10.0 10.0 1.80 0.09 0.0 0.0 0.0 1.0 1.0 1.0 1.62 0.1 0.0 0.0 0.0 1.80 0.09 10.0 10.0 10.0 -1.0 -1.0 -1.0
Sample Output
YES YES

给你站在三维空间的警察和土匪的身高,头部半径,坐标。还有警察枪的方向向量

判断是否可以爆头

补充知识:

差乘

向量a=(x1,y1,z1)  b=(x2,y2,z2)

a x(差乘) b=( y1z2 - z1y2 , z1x2 - x1z2 , x1y2-y1x2)

点到直线的距离可以用等面积做

B到直线AC的距离可以用 |AB差乘AC|/|AC|

[csharp]  view plain copy
  1. #include<stdio.h>
  2. #include<math.h>
  3. int main()
  4. {
  5. int t;
  6. double h1,r1,x1,y1,z1;
  7. double h2,r2,x2,y2,z2;
  8. double x3,y3,z3;
  9. double x,y,z;
  10. double dis,a,b,c;
  11. scanf("%d",&t);
  12. while(t--)
  13. {
  14. scanf("%lf%lf%lf%lf%lf",&h1,&r1,&x1,&y1,&z1);
  15. scanf("%lf%lf%lf%lf%lf",&h2,&r2,&x2,&y2,&z2);
  16. scanf("%lf%lf%lf",&x3,&y3,&z3);
  17. z1=z1+h1-r1;//土匪头部Z轴坐标
  18. z2=z2+h2*0.9-r2;//警察头部Z轴坐标
  19. x=x1-x2;//土匪头部与警察头部连线向量
  20. y=y1-y2;
  21. z=z1-z2;
  22. a=y*z3-z*y3;//手枪的方向向量与警察与土匪连线的差乘
  23. b=z*x3-x*z3;
  24. c=x*y3-y*x3;
  25. dis=sqrt((a*a+b*b+c*c)/(x3*x3+y3*y3+z3*z3));
  26. if(dis<=r1&&(x*x3+y*y3*z*z3>0)) r1处也可以写成r2,红色部分是判断土匪在警察面前而不是身后。。
  27. printf("YES\n");
  28. else
  29. printf("NO\n");
  30. }
  31. return 0;
  32. }

空间点到直线的距离(hdu1174 爆头)相关推荐

  1. HDU1174(空间点到直线的距离,用叉积)

    爆头 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  2. 叉积求点到平面距离_OpenCV计算点到直线的距离 数学法

    我们在检测图像的边缘图时,有时需要检测出直线目标,hough变换检测出直线后怎么能更进一步的缩小区域呢?其中,可以根据距离来再做一判断,就涉及到了点与直线的距离问题. 点到直线距离代码如下: //== ...

  3. c 空间点到直线的垂足及距离计算

    已知条件: 已知空间一个点的坐标a(x0,y0,z0),已知空间的另外两个点的坐标b(x1,y1,z1),c(x2,y2,z2),求a点到 b,c两点所在直线的 距离最近的点的坐标 可以说是a点到 过 ...

  4. 点到直线的距离计算原理及MATLAB程序

    在二维和三维空间,有现成的计算点到空间直线的距离的公式: 如: 三维空间有类似的计算公式. 甚至博客直接提出用叉乘和行列式计算点到直线距离的计算方法和程序.但仅限于二维和三维的情况.更高维的就不适用. ...

  5. 点到直线的距离c语言程序,计算几何算法2. 关于线和点到线的距离(二维和三维)...

    关于直线 直线方程 点到直线的距离 用两点表示的直线 2d隐式表示的直线的情形 参数方程表示的直线 一个点到射线或线段的距离 代码实现 距离计算是计算机图形学和计算几何的基本问题,而且有很多关于这方面 ...

  6. 过直线上一点画垂线图_苏教版四年级数学上册8.5认识垂直、点到直线的距离微课视频 | 练习...

    微课视频第一课时 微课视频第二课时 同步练习 参考答案 教学设计 垂直 教材第89~91页的内容. 1.结合实际情境和操作活动,认识垂直. 2.能借助直尺.三角尺.量角器等工具画出已知直线的垂线,并理 ...

  7. 点到线段的距离_直线垂直,垂线的性质,点到直线的距离

    欢迎关注公z号:沈阳奥数 两条直线相交所成的四个角中,有一个角是直角时,就说这两条直线互相垂直,其中一条直线叫做另一条直线的垂线,它们的交点叫垂足. 如图,直线AB与CD垂直于点E,记作:AB⊥CD于 ...

  8. 点到直线的距离c语言程序,点到线段的距离 题解(C++)

    初步分析 这道题之前有<点到直线的距离>一题. 如图,我们不妨来下个定义(名字是乱起的,如果有雷同就以以下定义为准): 对于任意线段l,在其两个端点上分别作垂直于l的直线,若点在两直线之间 ...

  9. 【JAVA 第四章 流程控制语句】课后习题 直线斜率 以及判断坐标是否在直线上点到直线的距离

    不知道对不对,请教大神帮忙找下.公式是否有错 import java.util.Scanner;public class Test {/*设计并实现一个MyLine 类,它表示直线.构造方法中使用两个 ...

最新文章

  1. idea上一些比较有用的插件
  2. 【摘抄】百度分词算法详解:查询处理以及分词技术
  3. 前端页面-不可编辑控制
  4. java编码技巧_编码小技巧 让java编程更便捷
  5. 日本区块链项目Jasmy与索尼VAIO联合发售笔记本电脑
  6. 网秦任命两位新董事 成立投资委员会
  7. 接口返回buffer的16进制数据如何转换
  8. 软件工程 第三章 需求分析
  9. linux 7自定义服务,CentOS 7.x设置自定义开机启动,添加自定义系统服务
  10. 体系结构方案 - 临时性数据计算
  11. java AES 32位加密解密
  12. 苹果Mac设备丢失时怎样利用激活锁保护隐私信息?
  13. 如何正确做笔记?符号笔记法、康奈尔笔记法总结!
  14. 主码流和辅码流的区别
  15. VLC Player – 自由、开源的跨平台多媒体播放器
  16. 基于SpringBoot框架图片销售网站的设计与实现
  17. 用python wxpy管理微信公众号,并利用微信获取自己的开源数据。
  18. 阿里云ECS服务器配置ubuntu安装openfire服务器
  19. 壹佰智慧门店V3 v3.0.89
  20. python在遥感中的应用_Python在遥感中的应用——导言

热门文章

  1. 基于MQTT的RPC协议
  2. 为什么协同OA办公系统成为企业的必备平台?
  3. 2022校招 小米集团 数字芯片设计(持续更新...)
  4. 腾讯qq中奖是真的吗_腾讯推出绝版QQ靓号选购,大家想买吗?
  5. java web小记response.sendRedirect,RequestDispatcher对象的forward方法实现页面跳转
  6. java使用Jacob合并word
  7. cad单位_CAD制图初学入门常用技巧汇总,CAD零基础也不怕!
  8. 智联,拉钩,boss直聘,三款互联网招聘应用竞品分析
  9. Android Studio 下载第三方库失败
  10. GoldenGate 的实现原理