• hdu 2036


    题意:求解多边形面积

    解法:

    先了解数学上“叉积”的含义与性质:

    a

    三角形ΔABC的面积为:

    b

    我们可以依次计算每个三角形的面积,ΔABC,ΔACE,ΔEF … …

    a

    所有三角形的面积之和为整个多边形的面积.

    每次计算由A0,Ai,Ai+1组成的三角形

    代码:

       1:  #include<stdlib.h>
       2:  #include<string.h>
       3:  #include<stdio.h>
       4:  #include<math.h>
       5:  #define N 101
       6:  struct point{
       7:      int x;
       8:      int y;
       9:  }array[N];
      10:  int main(){
      11:      int n,i;
      12:      while(scanf("%d",&n)!=EOF && n){
      13:          double sum=0;
      14:          for(i=0;i<n;i++){
      15:              scanf("%d %d",&array[i].x,&array[i].y);
      16:          }
      17:          for(i=1;i<n-1;i++){
      18:              int ax=array[i].x-array[0].x;
      19:              int ay=array[i].y-array[0].y;
      20:              int bx=array[i+1].x-array[0].x;
      21:              int by=array[i+1].y-array[0].y;
      22:              
      23:              //很奇怪,加上ABS,就WA了
      24:              sum+=ax*by-bx*ay;                    //计算叉积,再求和
      25:          }
      26:          printf("%.1lf
    ",sum/2);
      27:      }
      28:  }
  • 相关阅读:
    R 多图间距调整
    ggplot2 颜色渐变(离散颜色)设置
    R语言因子排序
    利用plink软件基于LD信息过滤SNP
    利用vcftools比较两个vcf文件
    在R语言中使用Stringr进行字符串操作
    perl 数组快速去除重复元素
    Shell中 ##%% 操作变量名
    Java基础之数值类型之间的转换
    Java中0.2减0.1 结果为什么不是0.1?
  • 原文地址:https://www.cnblogs.com/ZJUT-jiangnan/p/3655159.html
Copyright © 2020-2023  润新知