计算几何入门题目
1. nefu 919 最最难的题:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=919
题面描述:
最最难的题
Problem:919
Time Limit:1000ms
Memory Limit:65536K
Description
什么是最最难的题呢,当然就是计算三角形的面积啦,像我们这样皇家林业大学的ACMer们,AC这样的问题简直ius浪费生命, 不过也没办法,上面有命令在先,出题一定要水,唉。你们就将就着做吧...
Input
输入数据第一行是一个整数n,表示有n组测试实例,接下来有n行,每行6个数,分别表示三角形三个顶点的坐标x1,y1,x2,y2,x3,y3; (输入保证三个点不共线)
Output
对于每组坐标,输出由这三个顶点构成的三角形的面积,结果保留两位小数。每组输出占一行。
Sample Input
1 0 0 1 0 0 1
Sample Output
0.50
题目描述:
求解三角形的面积,叉积直接计算即可。
代码实现:
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
typedef struct node
{
double x,y;
}point;
point p[5];
double cross(point a,point b)
{
return (a.x-p[0].x)*(b.y-p[0].y)-(a.y-p[0].y)*(b.x-p[0].x);
}
double s()
{
for(int i=0;i<3;i++)
{
scanf("%lf%lf",&p[i].x,&p[i].y);
}
double sum=0.0;
for(int i=1;i<2;i++)
{
sum+=cross(p[i],p[i+1]);
}return fabs(sum);
}
int main()
{
int n1;
double sum1;
while(cin>>n1)
{
for(int j=0;j<n1;j++)
{
sum1=s();
printf("%.2lf\n",sum1/2.0);
}
}
return 0;
}
2.
nefu920:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=920
关