LOJ 1305 - Area of a Parallelogram(数学j几何)

来源:互联网 发布:虚拟场景制作软件 编辑:程序博客网 时间:2024/05/05 02:40
                                                                           1305 - Area of a Parallelogram
   PDF (English)StatisticsForum
Time Limit: 1 second(s)Memory Limit: 32 MB

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 ABCD should 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 Band (Cx, Cy) denotes the coordinate of C. Value of any coordinate lies in the range [-1000, 1000]. And you can assume that A, B and C 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<cstdlib>struct Node{   int x;   int y;}node[10];int main(){    int t,kcase = 1;    scanf("%d",&t);    while(t--)    {        for(int i = 0 ; i < 3 ; i++)            scanf("%d%d",&node[i].x,&node[i].y);        node[3].x = node[2].x + node[0].x - node[1].x;        node[3].y = node[2].y + node[0].y - node[1].y;        int area = abs((node[2].y - node[1].y) * (node[0].x - node[1].x) - (node[0].y - node[1].y) * (node[2].x - node[1].x));        printf("Case %d: %d %d %d\n",kcase++,node[3].x,node[3].y,area);    }    return 0;}


0 0