Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
确实是初中几何。求出两个直线方程,然后两直线的交点坐标就是答案#include <iostream> #include <stdio.h> #include <math.h> #define FOR(i,s,e) for (int (i)=(s); (i)<(e); (i)++) #define ROUNT(x) ((int)(10000*(x)+0.5))/10000.0 const double PI = 3.1415926535897; using namespace std; double a[3]; double b[3]; double c[3]; void get(double x, double y, double p,int i) { if (p == 0 || p == 180) { a[i] = 1; b[i] = 0; c[i] = x*1.0; } else { p = p/180*PI; if (p >= 0 && p <= PI) p = PI/2 - p; else p = 3*PI/2 - p; a[i] = -1 * tan(p); b[i] = 1; c[i] = x*a[i]+b[i]*y; } } int main() { // freopen("in.txt","r",stdin); int t; double xx,yy,pp; double x,y; scanf("%d",&t); while (t--) { FOR(i,1,3) { scanf("%lf%lf%lf",&xx,&yy,&pp); get(xx,yy,pp,i); } x = (c[1]*b[2]-c[2]*b[1])/(a[1]*b[2]-a[2]*b[1]); y = (c[1]*a[2]-c[2]*a[1])/(b[1]*a[2]-b[2]*a[1]); printf("%.4lf %.4lf\n",ROUNT(x),ROUNT(y)); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator