您的位置:首页 > 其它

LightOJ - 1305 Area of a Parallelogram (数学几何)水

2016-04-30 18:08 483 查看
LightOJ - 1305
Area of a Parallelogram

Time Limit:                                                        1000MS                       Memory Limit: 32768KB64bit IO Format:                            %lld & %llu                       
SubmitStatus

Description

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
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 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

3

0 0 10 0 10 10

0 0 10 0 10 -20

-12 -10 21 21 1 40

Sample Output

Case 1: 0 10 100

Case 2: 0 -20 200

Case 3: -32 9 1247

Hint

Source

Problem Setter: Jane Alam Jan
//题意:告诉A,B,C三个点的坐标,并且三个点的顺序如图所示,输出D点坐标和平行四边形面积
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
#define PI acos(-1.0)
using namespace std;
double S(double x1,double y1,double x2,double y2,double x3,double y3)
{
return (x2-x3)*(y1-y3)-(y2-y3)*(x1-x3);
}
int main()
{
int t,T=1;
scanf("%d",&t);
while(t--)
{
double x,x1,x2,x3,x4,y,y1,y2,y3,y4;
double s;
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
x=x2-x1;y=y2-y1;
x4=x3-x;y4=y3-y;
s=(fabs)(S(x1,y1,x2,y2,x3,y3));
printf("Case %d: %d %d %d\n",T++,(int)x4,(int)y4,(int)s);
}
return 0;
}


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