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 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.
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.
题意:给出平行四边形的三个点,让你求第四个点和平行四边形的面积。
求第四个点可用对角线中点的知识,两对角线对应的点相等。
#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;
}
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;
}
相关文章推荐
- light oj 1305 - Area of a Parallelogram (数学 平行四边形坐标和面积)
- 如何用数学课件制作工具推导平行四边形的面积公式
- 数学 求平行四边形的面积和坐标
- lightoj-1305 - Area of a Parallelogram【数学】【向量法求平行四边形面积】
- 平行四边形的第四个点及其面积
- LightOJ 1058 平行四边形的判断定理
- LightOJ 1305 - Area of a Parallelogram(数学啊 )
- 两个向量构成的平行四边形面积的求解 ————简单技巧
- LightOJ 1058 Parallelogram Counting【平行四边形的判定】
- LightOJ - 1305 Area of a Parallelogram (数学几何)水
- 两个向量(x1, y1), (x2, y2) 之间的平行四边形面积为啥是 (x1*y2-x2*y1)?
- LightOJ - 1058 Parallelogram Counting 平行四边形判定
- [从头学数学] 第143节 平行四边形 小结与复习题
- lightoj 1305 Area of a Parallelogram (几何数学)
- lightoj 1058 - Parallelogram Counting (几何,平行四边形)
- POJ---1791 Parallelogram Counting[数学题-平行四边形求个数]
- 【LightOJ】1305 - Area of a Parallelogram(求平行四边形面积)
- 如何制作平行四边形面积公式推导课件
- [从头学数学] 第60节 平行四边形和梯形
- 行列式与平行四边形的面积