UVA 11178 Morley's Theorem 计算几何模板
2024-09-05 15:17:06
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath> using namespace std; const double eps=1e-8; int dcmp(double x)
{
if(fabs(x)<eps) return 0; else return (x<0)?-1:1;
} struct Point
{
double x,y;
Point(double _x=0,double _y=0):x(_x),y(_y){}
}; Point operator+(Point A,Point B) {return Point(A.x+B.x,A.y+B.y);}
Point operator-(Point A,Point B) {return Point(A.x-B.x,A.y-B.y);}
Point operator*(Point A,double p) {return Point(A.x*p,A.y*p);}
Point operator/(Point A,double p) {return Point(A.x/p,A.y/p);} Point A,B,C; double Dot(Point A,Point B) {return A.x*B.x+A.y*B.y;}
double Length(Point A) {return sqrt(Dot(A,A));}
double Angle(Point A,Point B) {return acos(Dot(A,B)/Length(A)/Length(B));}
double angle(Point v) {return atan2(v.y,v.x);}
double Cross(Point A,Point B) {return A.x*B.y-A.y*B.x;} Point Rotate(Point A,double rad)
{
return Point(A.x*cos(rad)-A.y*sin(rad),A.x*sin(rad)+A.y*cos(rad));
} 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;
} Point getD(Point A,Point B,Point C)
{
Point v1=C-B;
double a1=Angle(A-B,v1);
v1=Rotate(v1,a1/3); Point v2=B-C;
double a2=Angle(A-C,v2);
v2=Rotate(v2,-a2/3); return GetLineIntersection(B,v1,C,v2);
} void read(Point &a)
{
scanf("%lf %lf",&a.x,&a.y);
}
int main()
{
int cas;
scanf("%d",&cas);
while(cas--)
{
Point a,b,c,d,e,f;
read(a);
read(b);
read(c);
d=getD(a,b,c);
e=getD(b,c,a);
f=getD(c,a,b);
printf("%.6f %.6f %.6f %.6f %.6f %.6f\n",d.x,d.y,e.x,e.y,f.x,f.y);
}
return 0;
}
最新文章
- oracle入门必备
- 用PDB库调试Python程序
- 【Linux安全】系统资源监控与进程终止
- ModelSim仿真
- 线程篇-01-NSThread
- YSlow的性能测试提示
- Vue模板逻辑
- 利用fiddler和mock调试本地微信网页
- alpha-咸鱼冲刺day3-紫仪
- mysql权限参考
- Java——对象的复制、克隆、序列化
- 【原创+整理】简述何为调用约定,函数导出名以及extern C
- js怎么将 base64转换成图片
- Codeforces.838E.Convex Countour(区间DP)
- 【DM】Combating Web Spam with TrustRank - 用TrustRank对抗网络垃圾邮件
- Can not find the tag library descriptor for ";http://www.springframework.org/tags";
- day55 linux 基础以及系统优化
- 【Android】17.3 Activity与StartedService的绑定
- 《C++ Primer Plus》第15章 友元、异常和其他 学习笔记
- 微信支付 WeixinJSBridge is not defined 报错