HDU 1086 计算几何 求线段交点(吉大模板)
来源:互联网 发布:3d游戏编程入门经典 编辑:程序博客网 时间:2024/06/05 20:29
模板直接解决。。
#include<iostream>#include <string>#include <algorithm>using namespace std;const double eps=1e-10;struct point { double x, y; };double min(double a, double b) { return a < b ? a : b; }double max(double a, double b) { return a > b ? a : b; }bool inter(point a, point b, point c, point d){if ( min(a.x, b.x) > max(c.x, d.x) ||min(a.y, b.y) > max(c.y, d.y) ||min(c.x, d.x) > max(a.x, b.x) ||min(c.y, d.y) > max(a.y, b.y) ) return 0;double h, i, j, k;h = (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);i = (b.x - a.x) * (d.y - a.y) - (b.y - a.y) * (d.x - a.x);j = (d.x - c.x) * (a.y - c.y) - (d.y - c.y) * (a.x - c.x);k = (d.x - c.x) * (b.y - c.y) - (d.y - c.y) * (b.x - c.x);return h * i <= eps && j * k <= eps;}int main(){int n;point p[105][2];while(cin >> n, n){for(int i = 0; i < n; i++)scanf("%lf%lf%lf%lf", &p[i][0].x, &p[i][0].y, &p[i][1].x, &p[i][1].y);int sum = 0;for(int i = 0; i < n; i++){for(int j = i+1; j < n; j++){if(inter(p[i][0], p[i][1], p[j][0], p[j][1]))sum += 1;}}cout << sum << endl;}}
- HDU 1086 计算几何 求线段交点(吉大模板)
- hdu 1086 计算几何 求线段有多少个交点
- 计算几何之线段性质(二):求线段交点
- POJ 1039-Pipe(计算几何-线段相交、求交点)
- hdu 1086 计算几何 线段求交
- hdu 1086 求线段交点
- poj 1127 计算几何入门题 求线段交点
- 计算几何 POJ 2826 An Easy Problem?! (线段位置判断并且求交点)
- POJ 2653 Pick-up sticks(计算几何 求线段交点)
- [从头学数学] 第265节 [计算几何] 多线段求交点(扫描线法)
- 计算几何-求线段交点算法和代码(C++语言)
- FZU 1015 土地划分 (计算几何求线段交点个数)
- HDU 2857 Mirror and Light (计算几何求 对称点和两直线的交点)
- POJ3304 Segments(计算几何,线段和直线的交点)
- HDU 3803 求线段交点
- [从头学数学] 第266节 [计算几何] 多线段求交点
- HDU 4643 GSM(计算几何求线段的中垂线)
- 【计算几何初步-线段相交】【HDU1089】线段交点
- gprs驱动程序设计实例
- 又要重写?!
- 不公平的社会
- 字符串转整数
- test
- HDU 1086 计算几何 求线段交点(吉大模板)
- C语言介绍维基百科
- [DLX] [NOI2005] 智慧珠游戏
- 餐桌上的“爱心菜”
- phpMyAdmin 及 MySQL 中文乱码 解决方案
- 收缩SQL SERVER数据库
- adodb.recordset.open
- linux管道
- Python学习笔记(一)