51nod1264(计算几何入门题)
来源:互联网 发布:货源软件是什么 编辑:程序博客网 时间:2024/05/15 23:51
传送门:51nod1264
题意:给你两条线段,判断是否相交
数学渣渣看了一下午各种找公式才明白:下面写一下理解:
判断两个线段相交与否。可以看成直线是否与线段相交
根据高数所学,向量的叉乘积,可以利用右手法则来判断结果的方向。
那么如果两种情况的方向一个上,一个下,那么自然也就是不在直线的同侧,那么就满足条件了。
代码是有需要注意x,y用double类型,否则乘法会有问题
ACcode
#include <iostream>#include <stdio.h>using namespace std;struct node{ double x,y;}a,b,c,d,ab,bc,bd;void solve(){ double p[4]; p[0]=(b.x-a.x)*(b.y-c.y)-(b.y-a.y)*(b.x-c.x); //ba X bc p[1]=(b.x-a.x)*(b.y-d.y)-(b.y-a.y)*(b.x-d.x); //ba X bd p[2]=(d.x-c.x)*(d.y-a.y)-(d.y-c.y)*(d.x-a.x); p[3]=(d.x-c.x)*(d.y-b.y)-(d.y-c.y)*(d.x-b.x); if ((p[0]*p[1]<=0)&&(p[2]*p[3]<=0)) cout<<"YES"<<endl; else cout<<"NO"<<endl;}int main(){ int n; cin>>n; while(n--) { cin>>a.x>>a.y>>b.x>>b.y>>c.x>>c.y>>d.x>>d.y; solve(); } return 0;}
阅读全文
0 0
- 51nod1264(计算几何入门题)
- 51NOD1264 线段相交(计算几何)
- nod1264 线段相交(计算几何)
- 51nod1264
- 计算几何入门题(转载)
- HDOJ1221 计算几何入门题
- UVA11178 计算几何入门题
- 计算几何入门题推荐
- 计算圆的周长(入门题-计算几何)
- 计算几何入门题推荐、计算几何题目合集
- 51NOD1264线段相交
- 51nod1264 线段相交
- 51Nod1264 线段相交
- 51nod1264 线段相交
- 51nod1264 线段相交
- 计算几何简单入门题列表
- POJ 2318 TOYS(计算几何入门)
- uva579 计算几何入门
- Hibernate项目简单配置
- LeetCode#547 Friend Circles题解(C++版)
- Nginx 官方文档翻译
- 新浪微博正在审核的开发者平台应用添加测试账号
- python之enumerate()说明
- 51nod1264(计算几何入门题)
- 周总结
- 项目步骤——类图
- TensorFlow学习_(1)TensorFlow安装(Mac)
- 1011. A+B和C (15)
- Button设置监听的三种方式
- linux中./configure 和它的参数 讲解
- ubuntu学习总结
- 一致性哈希算法学习及java代码实现分析