给出等边三角形的两个点,求另外一个点。画一个图,直接乱搞下。
#include<iostream> #include<math.h> #include<stdio.h> #include<algorithm> #include<string.h> #include<vector> #include<queue> #include<map> #include<set> #define B(x) (1<<(x)) using namespace std; typedef long long ll; void cmax(int& a,int b){ if(b>a)a=b; } void cmin(int& a,int b){ if(b<a)a=b; } void cmax(ll& a,ll b){ if(b>a)a=b; } void cmin(ll& a,ll b){ if(b<a)a=b; } void add(int& a,int b,int mod){ a=(a+b)%mod; } void add(ll& a,ll b,ll mod){ a=(a+b)%mod; } const int oo=0x3f3f3f3f; const int MOD=2012; const int maxn=110000; char str[maxn]; int dp[30],s[maxn]; int dpl[maxn],dpr[maxn]; const double PI=acos(-1.0); int main(){ //freopen("E:\\read.txt","r",stdin); int T; double x1,y1,x2,y2,x3,y3; scanf("%d",&T); while(T--){ scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2); double L=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); double a=atan2(y2-y1,x2-x1); x3=x1+L*cos(a+PI/3.0); y3=y1+L*sin(a+PI/3.0); printf("(%.2lf,%.2lf)\n",x3,y3); } return 0; }