UVA11437
来源:互联网 发布:编程三大结构 编辑:程序博客网 时间:2024/06/06 06:56
https://vjudge.net/problem/UVA-11437
#include <iostream>#include <cstdio>#include <cmath>using namespace std;struct Point{double x;double y;Point(double x = 0 , double y = 0): x(x),y(y) {};};Point operator + (const Point& A , const Point& B){return Point( A.x + B.x , A.y + B.y );}Point operator - (const Point& A , const Point& B){return Point( A.x - B.x , A.y - B.y );}Point operator * (const Point& A , double a){return Point( A.x * a , A.y * a );}Point operator / (const Point& A , double a){return Point( A.x / a , A.y / a );}double Cross( const Point& A , const Point& B ){return A.x * B.y - A.y * B.x;}bool operator == (const Point& A , const Point& B ){return A.x == B.x && A.y == B.y;}bool operator < ( const Point& A , const Point& B ){return A.x < B.x || ( A.x == B.x && A.y < B.y );}Point GetLineIntersection(Point P, Point v, Point Q, Point w) { //求交点 Point u = P - Q; double t = Cross(w, u) / Cross(v, w); return P + v * t;}int main(){int T;cin>>T;while( T-- ){Point A , B , C , D , E ,F;scanf("%lf%lf%lf%lf%lf%lf",&A.x,&A.y,&B.x,&B.y,&C.x,&C.y);Point CF = Point( ( B - C ) + ( A - B )*2.0/3 );Point AD = Point( ( A - B ) + ( B - C )*1.0/3 );Point BE = Point( ( B - C ) + ( C - A )*1.0/3 ); Point P = GetLineIntersection( B , BE , A , AD );Point Q = GetLineIntersection( B , BE , C , CF );Point R = GetLineIntersection( C , CF , A , AD );double res = fabs( Cross( Q - P , R - P ) );printf("%lld\n",( long long ) (res/2.0 + 0.5) );}return 0;}
阅读全文
0 0
- UVA11437
- UVA11437
- UVa11437
- UVa11437 Triangle Fun
- UVA11437 - Triangle Fun
- UVa11437 - Triangle Fun(两线段的交点求法、叉乘求面积)
- 尝试着写点东西
- HDU 6075 Questionnaire
- AppBarLayout+TabLayout+RecyclerView实现滑动隐藏导航栏。
- HDU 4788 Hard Disk Drive
- PHP取整函数
- UVA11437
- maven和Ant区别在哪里
- Unity调用自定义Jar
- 红黑树(一)之 原理和算法详细介绍
- 一位资深程序员大牛给予Java初学者的学习路线建议
- Hash表的查找成功与失败
- Direct2D图像显示不全的问题
- java return 用法
- PHP时间函数