UVA Orchard Trees(计算几何)
来源:互联网 发布:地图填色软件 编辑:程序博客网 时间:2024/06/13 01:52
求给定浮点三角形中的整点个数,包括边界上面的,开始以为又是什么转化的PICK定理,后来发现点的范围很小,所以直接暴力枚举每个点
判断在不在三角形内部,判断直接用面积判断
可能会导致wa的地方是三角形可能会退化成一条直线,那么在共线的点无论在不在三角形状内部都符合,所以这里要加一个判断
#include <iostream>#include <string.h>#include <algorithm>#include <cmath>#include <stdio.h>using namespace std;#define eps 1e-8#define zero(x) (fabs(x)<eps?1:0)#define MAX(a,b) (a>b?a:b)#define MIN(a,b) (a<b?a:b)struct point{ double x,y;}a,b,c,temp;double area;double cross(point &a,point &b,point &c){ return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);}bool is_ok(point &temp){ double ans=0; ans+=fabs(cross(temp,a,b)); ans+=fabs(cross(temp,b,c)); ans+=fabs(cross(temp,a,c)); if(!zero(ans-area)) return false; if(zero(area)){ return (temp.x>=MIN(a.x,b.x) && temp.x<=MAX(a.x,b.x)) || (temp.x>=MIN(b.x,c.x) && temp.x<=MAX(b.x,c.x))|| (temp.x>=MIN(a.x,c.x) && temp.x<=MAX(a.x,c.x)); } return zero(ans-area);}int main(){ int i,j,k,ans; while(scanf("%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y,&c.x,&c.y)){ if(a.x==0 && b.x==0 && c.x==0 && a.y==0 && b.y==0 && c.y==0) return 0; ans=0; area=fabs(cross(a,b,c)); for(i=1;i<100;i++) for(j=1;j<100;j++){ temp.x=i,temp.y=j; if(is_ok(temp)){ ans++; } } printf("%4d\n",ans); } return 0;}
- UVA Orchard Trees(计算几何)
- UVa 143 Orchard Trees (数学&计算几何&枚举)
- UVa-143-Orchard Trees(果树林)[计算几何]
- UVA 143 Orchard Trees
- UVa 143 Orchard Trees
- UVA - 10250 - The Other Two Trees (简单计算几何)
- UVa 10250 The Other Two Trees (计算几何)
- uva 190(计算几何)
- UVA 143 Orchard Trees(判断点在三角形内)
- UVA 10250 - The Other Two Trees(几何)
- uva 10250 The Other Two Trees(几何推导)
- HDU 1392 Surround the Trees(计算几何,求凸包周长)
- uva143 - Orchard Trees
- HDU 1633 ( Orchard Trees )
- Hoj 1188 Orchard Trees
- UVaOJ 143 Orchard Trees
- uva 10668(计算几何+二分)
- uva 11524 InCircle 内切圆(计算几何)
- Unity3D开发资料
- JVM调优总结(七)-典型配置举例1
- extern "C"和_stdcall
- 闭包整理
- memcache的用法与常识
- UVA Orchard Trees(计算几何)
- 资源的后台加载
- android 以追加形式写文件并把文件保存到SD卡中
- 非编程天才参与开源项目的14种方式
- 2012 Asia ChangChun Regional Contest(2013区域赛练习)
- 虚拟函数与多态(Polymorphism)
- 先锋商泰面试
- 卧槽,这就停课了
- 20131013-OrCAD设计重用的一些技巧-不断完善