UVA 11437 || Triangle Fun
2015-02-08 15:01
344 查看
给 A B C 的坐标, D E F分别为三条边的三等分点,求P R Q三角形的面积。
直接求三点坐标就好了,算X积。
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; struct point { double x,y; point(){} point(double a,double b):x(a),y(b){} void read(){scanf("%lf%lf",&x,&y);} }; typedef point vec; vec operator - (point a,point b){ return vec(a.x-b.x,a.y-b.y);} vec operator + (point a,point b){ return vec(a.x+b.x,a.y+b.y); } vec operator * (vec a,double p){ return vec( a.x*p,a.y*p ); } double cross(vec a,vec b){ return a.x*b.y - a.y*b.x;} point A,B,C,D,F,E; point P,Q,R; point getpoint( point p,vec v,point q,vec w) { vec u = p-q; double t = cross(w,u)/cross(v,w); return p+v*t; } int main() { // freopen("in.txt","r",stdin); int t; cin>>t; while(t--) { A.read(),B.read(),C.read(); D = B + (C - B) * (1.0 / 3.0); F = A + (B - A) * (1.0 / 3.0); E = C + (A - C) * (1.0 / 3.0); P = getpoint(A,D-A,B,E-B); Q = getpoint(B,E-B,C,F-C); R = getpoint(C,F-C,A,D-A); double area = fabs ( cross( R-P,Q-P) )/2.0; printf("%.0lf\n",area); } return 0; }
相关文章推荐
- UVA 11437 Triangle Fun
- UVA 11437 Triangle Fun
- UVa 11437 - Triangle Fun
- UVA 11437 - Triangle Fun(计算几何)
- UVA 11437 Triangle Fun
- UVA 11437 - Triangle Fun
- uva 11437 - Triangle Fun
- uva 11437 Triangle Fun
- UVA11437 - Triangle Fun
- uva 11437 Triangle Fun (简单计算几何)
- UVa 11437 - Triangle Fun
- uva 11437 Triangle Fun
- UVa11437 - Triangle Fun(直线交点)
- 简单几何(求交点) UVA 11437 Triangle Fun
- 入门题 UVA 11437 - Triangle Fun
- UVa 11437 (梅涅劳斯定理) Triangle Fun
- UVA 11437 Triangle Fun 三角形趣题 (二维几何)
- uva 11437 - Triangle Fun
- 【UVA】11437 Triangle Fun(简单几何)
- uva 11437 - Triangle Fun(几何)