题目
计算凸多边形的面积(pol)
问题描述:
按一定的顺序(顺、逆时针)给出一个多边形的各顶点坐标,求该多边形的面积。
输入:
第一行包含一个n,表示多边形顶点的个数( 0<=n<=100)
第2行到第n+1行,每行两个整数x,y(-10000<=x,y <= 10000)
输出:
输出有且只有一行,包含一个数s,s为多边形的面积,保留一位小数
样例:
pol.in
3
0 0
0 3
3 0
pol.out
4.5
题目及测试数据: https://github.com/Leoleepz/OI-Codes/tree/master/%E4%BB%BB%E6%84%8F%E5%A4%9A%E8%BE%B9%E5%BD%A2%E9%9D%A2%E7%A7%AF
- 第一种方法即为朴素的向量方法。我们可以把凸多边形拆成多个三角形的面积去做。我们会发现,如果用原点去构造三角形来操作,最终结果就是(逆时针坐标乘积-顺时针坐标乘积)÷2.
1 |
|
- 第二种方法我脑洞了一下,用了定积分的方法。定积分有正有负,依次求和,重复部分由于正负会相互抵消,最后剩下的总面积的绝对值就是多边形的面积。
1 |
|