首页 > 其他分享 >求面积 (坐标叉积公式+凹多边形面积-坐标公式)

求面积 (坐标叉积公式+凹多边形面积-坐标公式)

时间:2022-10-25 12:09:11浏览次数:45  
标签:node 多边形 int 公式 vector 坐标 叉积 顶点 include


求面积(AREA)

给出一个简单多边形(没有缺口),它的边要么是垂直的,要么是水平的。要求计算多边形的面积。

多边形被放置在一个X-Y的卡笛尔平面上,它所有的边都平行于两条坐标轴之一。然后按逆时针方向给出各顶点的坐标值。所有的坐标值都是整数(因此多边形的面积也为整数)。

 

输入

输入文件第一行给出多边形的顶点数n(n≤100)。接下来的几行每行给出多边形一个顶点的坐标值X和Y(都为整数并且用空格隔开)。顶点按逆时针方向逐个给出。并且多边形的每一个顶点的坐标值-200≤x,y≤200。多边形最后是靠从最后一个顶点到第一个顶点画一条边来封闭的。

 

输出

输出文件仅有一行包含一个整数,表示多边形的面积。

 

样例

AREA.IN

10

0 0

4 0

4 1

3 1

3 3

2 3

2 2

1 2

1 3

0 3

 

AREA.OUT

9


叉积公式 A X B= x1y2-x2y1=S(平行四边形)=2S(三角形)=2*|a|*|b|*sinaC





求面积 (坐标叉积公式+凹多边形面积-坐标公式)_i++



















#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<cmath>
#include<functional>
#include<algorithm>
#include<queue>
using namespace std;
#define MAXN (100+10)
class _vector
{
public:
int x,y;
_vector():x(0),y(0){}
_vector(int _x,int _y):x(_x),y(_y){}
friend int operator*(const _vector a,const _vector b)
{
return a.x*b.y-a.y*b.x;
}

}node[MAXN];

istream& operator>>(istream& in,_vector& a)
{
in>>a.x>>a.y;
return in;
}
int n;
int main()
{
freopen("area.in","r",stdin);
freopen("area.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++) cin>>node[i];
node[n+1]=node[1];
int ans=0;
for (int i=1;i<=n;i++)
ans+=node[i]*node[i+1];
ans=abs(ans);

printf("%d\n",int(round(double(ans)/2)));
// while (1);
return 0;


}




标签:node,多边形,int,公式,vector,坐标,叉积,顶点,include
From: https://blog.51cto.com/u_15724837/5794394

相关文章

  • 拯救LongMM (递推公式求解)
    拯救LongMM(lan.pas/c/cpp)【题目描述】LongDD将军为了平息延续数年战乱,决定释放战俘营中所有的俘虏。然而,LongDD将军不......
  • Unity 将经纬度变为Unity中的坐标
    经纬度组合起来就是一个Vector2类型的数据。我们首先在Unity中创建两个点,两个点的位置就是一个正方形的对角线的位置即可,将这两个点的位置分别给一个经纬度,在通过其和坐标......
  • CF 18A(近似直角三角形判断+向量直角公式+switch+istream&(..&P a))
    A.Triangletimelimitpertestmemorylimitpertestinputoutput判断一个格......
  • HDU 1465(错排公式)
    不容易系列之一TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):9829    AcceptedSubmission(s):......
  • 泰勒公式
    在高等数学的理论研究及应用实践中,泰勒公式有着十分重要的应用,简单归纳如下:(1)应用泰勒中值定理(泰勒公式)可以证明中值等式或不等式命题。(2)应用泰勒公式可以证明区......
  • python画图 去除横纵坐标值;设置横纵坐标名称;设置坐标轴刻度大小
    1.去除横纵坐标值plt.xticks([])#去掉横坐标值plt.yticks([])#去掉纵坐标值2.设置横纵坐标名称ax1.set_xlabel('Outputclass',fontsize=24)#设置x轴名称a......
  • POJ 1825/2279(Young/Mr. Young's Picture Permutations-杨氏矩阵和钩子公式)
    给出一个n行的矩阵,每一行有a[i]个数,总共有sum个数,要求每一个位置的数必须比上面的数和左面的数大,求总方案数.杨氏矩阵又叫杨氏图表,它是这样一个矩阵,满足条件:(1)如果格子......
  • diag矩阵(Diag矩阵计算公式)
    A=diag(a1,a2..an)是表示对角矩阵吗?书上没有明确?是的,其中ai表示在第i行第i列的数是ai,其余都是0对角行列式的读法对角行列式(对角矩阵的行列式)可记为-diag(对所有的数学符......
  • 用LaTeX公式进行计算
    保命声明:笔者在校属于中低水平学生,代码能力有限,若行文中有错漏之处欢迎大家指出。LaTeX语法LaTeX是美国计算机学家LeslieLamport开发的排版系统,适用于大型论文排版和数......
  • 动态规划递归公式理解
    dp[i][j]表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。递推公式:dp[i][j]的含义:从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是......