HDU 1174 3维点到直线距离
来源:互联网 发布:淘宝的伞黑胶都在外面 编辑:程序博客网 时间:2024/06/08 17:51
若向量a=(a1,b1,c1),向量b=(a2,b2,c2),
则
向量a×向量b=
| i j k |
|a1 b1 c1|
|a2 b2 c2|
=(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)
则
向量a×向量b=
| i j k |
|a1 b1 c1|
|a2 b2 c2|
=(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)
(i、j、k分别为空间中相互垂直的三条坐标轴的单位向量)。
问题转化:空间点到直线的距离---即土匪的头心到子弹所在直线的距离是否小于头半径
点积: cos
叉积:sin
B到直线AC的距离就是|AB叉乘AC|/|AC|
A警察头心 B匪徒头心 AC 与r同向
*/
struct Point3D{ double x , y , z ; Point3D(){} Point3D(double _x , double _y , double _z):x(_x),y(_y),z(_z){} Point3D operator ^ (Point3D o){ return Point3D(y*o.z-z*o.y , x*o.z-z*o.x, x*o.y-y*o.x) ; } Point3D operator - (Point3D o){ return Point3D(x-o.x , y-o.y , z-o.z) ; } double mo(){ return sqrt(x*x + y*y + z*z) ; } void read(){ cin>>x>>y>>z ; }};int main(){ int i , t ; Point3D A , B , AC ; //A人,B土匪 double h1 , r1 , h2 , r2 ; cin>>t ; while(t--){ cin>>h1>>r1 ; B.read() ; B.z += h1 - r1 ; cin>>h2>>r2 ; A.read() ; A.z += h2*0.9 - r2 ; AC.read() ; Point3D p = (A - B) ^ AC ; double r = p.mo() / AC.mo() ; if(r + eps < r1) puts("YES") ; else puts("NO") ; } return 0 ;}
0 0
- HDU 1174 3维点到直线距离
- hdu 1174 爆头(点到空间直线距离)
- HDU 4617 立体几何-空间直线距离
- HDU 4617Weapon(两条异面直线的距离)
- Hdu 4617 立体几何 异面直线距离
- 直线距离
- HDU 4741 空间几何求两直线距离最近点
- Hdu 4617 Weapon (三维计算几何 异面直线距离)
- [ACM] hdu 爆头(点到直线距离)
- HDU 4617 Weapon (计算几何:异面直线距离)
- HDU 4617 Weapon(计算几何、三维直线距离)
- HDU 4741 Save Labman No.004 (异面直线距离&直线与平面的交点)
- 求点到直线的距离
- 两点直线距离
- 求点到直线的距离
- hdu 4617 Weapon【异面直线距离——基础三维几何】
- hdu 4741 Save Labman No.004 (求异面直线距离及交点)
- 点到直线的距离
- Struts2教程3:struts.xml常用配置解析
- cocos2d-x 字体描边CCRenderTexture glBlendFunc
- C语言结构体声明
- JavaWeb项目登录Session失效问题
- linux下的打包和压缩
- HDU 1174 3维点到直线距离
- java web进阶篇(五) JSP标准标签库 ** 核心标签***
- STC单片机 定时器时钟FOSC 1T 12T、定时器模式
- UVA10038 Jolly Jumpers
- Jquery Mobile 插件 iscroll的使用
- Struts2教程4:使用validate方法验证数据
- Linux下C语言学习(二)——流程控制语句和数组的学习
- 确定进制(经典水题)
- 垃圾回收(garbage collection)介绍