您的位置:首页 > 其它

LightOJ 1305 (数学求平行四边形面积)

2016-08-28 13:07 453 查看
A parallelogram is a quadrilateral with two pairs of parallel sides. See the picture below:



Fig: a parallelogram

Now you are given the co ordinates of A, B and C, you have to find the coordinates of D and the area of the parallelogram. The orientation of ABCDshould be same as in the picture.


Input

Input starts with an integer T (≤ 1000), denoting the number of test cases.

Each case starts with a line containing six integers Ax, Ay, Bx, By, Cx, Cy where (Ax, Ay) denotes the coordinate of A(Bx,
By)
 denotes the coordinate of B and (Cx, Cy) denotes the coordinate of C. Value of any coordinate lies in the range [-1000, 1000]. And you can assume
that A, B andC will not be collinear.


Output

For each case, print the case number and three integers where the first two should be the coordinate of D and the third one should be the area of the parallelogram.

Sample Input

Output for Sample Input

3

0 0 10 0 10 10

0 0 10 0 10 -20

-12 -10 21 21 1 40
Case 1: 0 10 100

Case 2: 0 -20 200

Case 3: -32 9 1247

题意:给出平行四边形的三个点,让你求第四个点和平行四边形的面积。

求第四个点可用对角线中点的知识,两对角线对应的点相等。

#include<cstdio>

#include<cmath>

#define PI acos(-1.0)

int main()

{
int t;
scanf("%d",&t);
int flag=1;
while(t--)
{
double x1,y1,x2,y2,x3,y3;
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
double x4,y4;
x4=(x1+x3)-x2;
y4=(y1+y3)-y2; 
double a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
double b=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
double c=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
double sina=sqrt(1-((b*b+c*c-a*a)/(2*b*c))*((b*b+c*c-a*a)/(2*b*c)));//求∠a的正弦值 
double sum=sina*b*c; 
printf("Case %d: %.0lf %.0lf %.0lf\n",flag++,x4,y4,sum);      
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: