uva-11178 Morley's Theorem
2014-09-02 17:34
274 查看
#include <cstdio> #include <iostream> #include <algorithm> #include <complex> using namespace std; //#define e 2.718281828459 typedef complex<double> point; typedef point Vector; double Dot(Vector a,Vector b){return real(conj(a)*b);} double Cross(Vector a,Vector b){return imag(conj(a)*b); } Vector Rotate(Vector a,double rad){ return a*exp(point(0,rad));} point read_point(){ double x,y; scanf("%lf %lf",&x,&y); return point(x,y); } double length(Vector A){ return sqrt(Dot(A,A)); } double angle(Vector A,Vector B){ return acos(Dot(A,B)/length(A)/length(B)); } point GetLineIntersection(point a,Vector v,point b,Vector w){ Vector u=a-b; double t=Cross(w,u)/Cross(v,w); return a+v*t; } point cal_(point& a,point& b,point& c){ Vector u=c-b; double rad=angle(a-b,u); Vector u_=Rotate(u,rad/3); Vector v=b-c; double rad2=angle(a-c,v); Vector v_=Rotate(v,-rad2/3); return GetLineIntersection(b,u_,c,v_); } int main() { // cout<<angle(point(0,8),point(6,0)); point a,b,c,d,e,f; int T; scanf("%d",&T); while(T--){ a=read_point(); b=read_point(); c=read_point(); d=cal_(a,b,c); e=cal_(b,c,a); f=cal_(c,a,b); printf("%.6lf %.6lf %.6lf %.6lf %.6lf %.6lf\n",real(d),imag(d),real(e),imag(e),real(f),imag(f)); } return 0; }
相关文章推荐
- UVA 11178 Morley's Theorem
- uva 11178 Morley's Theorem
- Uva 11178 Morley's Theorem
- UVa 11178 - Morley's Theorem
- UVA 11178 || Morley's Theorem (向量旋转求交点
- UVA 11178 Morley's Theorem
- uva 11178 Morley's Theorem 点线
- UVA 11178 - Morley's Theorem 向量
- UVA 11178 Morley's Theorem(二维几何基础)
- UVa 11178 Morley's Theorem(几何)
- UVAoj 11178 Morley's Theorem
- UVa 11178 Morley's Theorem (向量旋转)
- UVA - 11178 Morley's Theorem //几何初探
- UVA 11178 Morley's Theorem
- uva 11178 Morley's Theorem(计算几何-点和直线)
- uva 11178 Morley's Theorem(计算几何-点和直线)
- UVA 11178-Morley's Theorem(计算几何_莫雷定理)
- UVA - 11178 - Morley's Theorem (计算几何~~)
- uva 11178 - Morley's Theorem (直线旋转相交)
- uva11178 Morley's Theorem