c++如何求任意多边形的面积

2023-10-26

由于项目需要,求解任意不规则多边形的面积 ,想了很久,也不知道怎么叙述,直接代码展示吧

#include <iostream>
#include <vector>
using namespace std;
 struct Point//定义坐标结构体
{  
    float x, y;  
};  
float intAreaCalc(vector<Point> &ptVector)//求解多边形的面积(知道多边形的顶点,按顺时针或者逆时针)
{
    int  i_count=vecPoly.size();
    iCycle=0;
    float area_temp=0.f;
    for(int i=0;i<i_count;i++)
    {    
        area_temp=area_temp+(vecPoly[i].x*vecPoly[(i+1) % i_count].y-vecPoly[(i+1) % i_count].x*vecPoly[i].y);
    }
    return abs(0.5*area_temp);
}
int main()
{
    int n;
    while(cin>>n && n!=0)输入n,决定是几边形
    {

        vector<Point>pt_vec;//存放多边形的各顶点
        Point pt_temp;//临时的Point变量,接收输入的顶点
        for(int i=0; i < n;i++)///按照顺序输入多边形的顶点坐标
        {
            cout<<"pt_temp.x = ";
            cin>>pt_temp.x;
            cout<<"pt_temp.y = ";
            cin>>pt_temp.y;
            pt_vec.push_back(pt_temp);
        }
        float area_all = intAreaCalc(pt_vec);/得到多边形的面积
        cout<<"多边形的面积是:"<<area_all<<endl; 
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++如何求任意多边形的面积 的相关文章

  • 扫描文本文件时如何跳过行?

    我想扫描一个文件并在阅读之前跳过一行文本 我试过 fscanf pointer n struct test i j 但这个语法只是从第一行开始 我可以使用 scanf 使用以下指令跳过行 fscanf config file n n 格式字
  • 必须打开存储才能执行此操作 - System.IO.Packaging.Package

    我正在使用 System IO Packaing Package 类来压缩文件 我的应用程序的多个实例可以同时运行 并读取和保存文件 当处理小文件时 一切似乎都很好 但是当涉及大文件时 如果应用程序的两个实例同时保存 我会收到一个异常 消息
  • SetWindowsHookEx 函数返回 NULL

    我正在研究 DLL 注入 但收到错误如下 挂接进程失败 87 参数不正确 目标进程和dll都是64位的 注入代码为 BOOL HookInjection TCHAR target TCHAR dll name https msdn micr
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • 通过单个 GPIO 引脚转储闪存

    我正在使用 Infineon 的 XMC4500 Relax Kit 并尝试通过单个 GPIO 引脚提取固件 我非常天真的想法是通过 GPIO 引脚一次转储一位 然后用逻辑分析仪以某种方式 嗅探 数据 伪代码 while word by w
  • 返回 int& 的函数[重复]

    这个问题在这里已经有答案了 我在网上查了一下发现一篇试图解释的文章std move和右值 http thbecker net articles rvalue references section 01 html并发现了一些我实在无法掌握的东
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 将 C# 反射代码移植到 Metro-Ui

    我正在尝试移植使用反射的现有 C 类 通用工厂 但我无法编译这段代码 Type types Assembly GetAssembly typeof TProduct GetTypes foreach Type type in types i
  • 将成员函数作为参数传递/c++

    我想用 C 实现一个类b可以通过封装该迭代器类型的成员集进行某种迭代 喜欢 b object for each x do function f so 函数 f会得到每个人的x成员并做任何事情 比方说 void function f x me
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • 不要声明只读可变引用类型 - 为什么不呢?

    我一直在阅读这个问题 https stackoverflow com questions 2274412 immutable readonly reference types fxcop violation do not declare r
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • asp.net c# 防止在从服务器端代码更改索引时触发 selectedindexchanged 事件

    我在同一个 aspx 页面上有两个下拉列表控件
  • Dynamics Crm:获取状态代码/状态代码映射的元数据

    在 Dynamics CRM 2011 中 在事件实体上 状态原因 选项集 也称为状态代码 与 状态 选项集 也称为状态代码 相关 例如看这个截图 当我使用 API 检索状态原因选项集时 如下所示 RetrieveAttributeRequ
  • 你能解释一下这个C++删除问题吗?

    我有以下代码 std string F WideString ws GetMyWideString std string ret StringUtils ConvertWideStringToUTF8 ws ret return ret W
  • c# 替代方案中 cfusion_encrypt 中填充的密钥是什么?

    我找到了从这里复制 C 中的 cfusion encrypt 函数的答案 ColdFusion cfusion encrypt 和 cfusion decrypt C 替代方案 https stackoverflow com questio
  • 程序退出后,TcpListener Socket 仍处于活动状态

    当我的程序退出时 我试图停止 TCP 侦听器 我不关心套接字或任何活动客户端套接字上当前活动的任何数据 套接字清理代码本质上是 try myServer Server Shutdown SocketShutdown Both catch E
  • 使用剪贴板 SetText 换行

    如何使用 SetText 方法添加换行符 I tried Clipboard SetText eee n xxxx 但当我将剪贴板数据粘贴到记事本中时 它没有给我预期的结果 预期结果 eee xxxx 我怎样才能做到这一点 Windows

随机推荐

  • 实验10——摄像头实验

    实验十 摄像头实验 一 实验目的 利用ESP32 CAM开启摄像头 在网站上显示实时图像 二 实验内容 1 配置基本的开发环境 2 烧录代码 3 在网页上显示实时摄像 三 实验设备 1 ESP32 CAM发板 2 杜邦线 四 实验步骤 1
  • C++中实参形参传递、返回值产生的临时变量

    C 中实参形参传递 返回值产生的临时变量 C和C 中的副本机制 1 函数返回值产生的临时变量 2 实参形参传递过程中产生的临时变量 C和C 中的副本机制 函数的形参 return 都有副本机制 数组没有副本机制 为了节约内存 副本机制就会产
  • Java - XPath解析爬取内容

    maven依赖
  • npm install报错的几种解决办法

    1 可能是缓存问题 vscode新导入项目 使用npm i 安装包时 经常出现npm ERR code EINTEGRITY的问题 应该是npm本地的缓存造成的 1 删除package lock json文件 如果不想更改此文件 装完之后还
  • git问题error: remote origin already exists.

    1 先删除远程 Git 仓库 git remote rm origin 2 再添加远程 Git 仓库 git remote add origin https gitee com xx xxxx git 3 最后git push origin
  • Linux终端Tab提示忽略大小写

    1 在用户家目录下创建 inputrc 文件 touch inputrc 2 在该文件中输入以下内容 set completion ignore case on vi inputrc 输入set completion ignore case
  • 各种杂志投稿方式与评价

    导读 一 目录 1计算机应用研究 2 现代通信 3 火力与指挥控制 4系统仿真学报 5 宇航学报 6导弹与航天运载技术 7小型微型计算机系统 8计算机仿真 9自动化学报 10微计算机信息 11继电器 12电网技术 13传感器技术 14西北农
  • mybatis在insert时,实体类字段为null时,报错问题

    mybatis在insert时 实体类字段为null时 报错问题 在执行SQL时MyBatis会自动通过对象中的属性给SQL中参数赋值 它会自动将Java类型转换成数据库的类型 而一旦传入的是null它就无法准确判断这个类型应该是什么 就有
  • python基础5——正则、数据库操作

    文章目录 一 数据库编程 1 1 connect 函数 1 2 命令参数 1 3 常用语句 二 正则表达式 2 1 匹配方式 2 2 字符匹配 2 3 数量匹配 2 4 边界匹配 2 5 分组匹配 2 6 贪婪模式 非贪婪模式 2 7 标志
  • 【狂神】MySQl - 修改和删除数据库表字段

    1 修改和删除数据库表字段 测试表 CREATE TABLE teacher id INT 11 NOT NULL COMMENT 教师编号 name VARCHAR 100 NOT NULL COMMENT 教师名称 PRIMARY KE
  • DNA repair 【HDU - 2457】【AC自动机+DP思路】

    题目链接 开始肝这道题的时候也是冒了十足的勇气 呜呜呜 当时一直没发现 我有个地方写成了 s i A 怎么能这样用啊 毕竟只有A C G T的说 呜呜呜 QAQ 然后讲一下 这道题的AC自动机的想法 还有DP的思路 我DP超菜 能过也是超神
  • Filezila的下载、安装与使用

    目录 一 Filezila的作用 二 Filezila的下载与安装 三 Filezila的使用 一 Filezila的作用 实现两个不同的主机之间的文件传输 二 Filezila的下载与安装 官网 下载 FileZilla中文网 选择下载客
  • 《为何爱会伤人》-读书笔记

    童年的重复 恋爱是童年关系的一次轮回 轮回的含义有两层 1 重温童年的美好 2 修正童年的错误 修正童年的错误 会让我们有改造的梦想 即想要在恋爱关系中去改造一个人 但是没有人愿意被改造 我们总是忍不住重复童年 哪怕它伤痕累累 一见钟情是我
  • KVM切换器和VGA切换器的区别

    CYK旗舰店接到过很多顾客的咨询 就是关于一个显示器接多个主机 一个主机接多个显示器需要如何连接的 市面上有KVM切换器和VGA切换器 可以解决以上两种问题 但是价格都高于于CYK生产的VGA一分二分屏线 CYK一分二分屏线价格不高 可以满
  • OpenCV教程——图像模糊。均值模糊,高斯模糊,中值模糊,双边模糊,高斯分布

    1 图像模糊 图像模糊是图像处理中最简单和常用的操作之一 使用该操作的原因之一是为了给图像预处理时降低噪声 图像模糊操作背后是数学的卷积计算 卷积操作的原理 常用的图像模糊的方法 均值模糊 高斯模糊 中值模糊 双边模糊 这四种模糊方式有时也
  • latex放一张大图在作者和正文之间

    ACM提供的latex的模板 begin teaserfigure includegraphics width textwidth sampleteaser caption Seattle Mariners at Spring Traini
  • 三.树莓派4B-无线登录

    无线登录 无线登录是指通过树莓派的SSH服务连接树莓派 这种方式最常用 SSH服务开启后 就相当于串口登录时配置config txt和cmdline txt文件一样 使得系统数据往wifi模块进行发送 再由软件接收 呈现系统终端界面 SSH
  • 如何使用Anaconda创建python3.9环境

    如何使用Anaconda创建python3 9环境 首先查看python版本 然后退出 你可以输入conda h查看基本的语法 下面进行创建仓库 即输入conda create 创建一个新的环境要给它一个名字 你可以用 n 表示你后面要起的
  • 微信小程序发布上线全流程(注册/开发/上传审核)

    以下是微信小程序发布上线的详细流程 确认小程序信息 在微信公众平台注册并登录后 进入小程序管理后台 在 开发 gt 开发设置 中填写小程序基本信息和配置 包括小程序名称 图标设计 类目选择等 此外 需要在小程序管理后台中配置小程序服务类目和
  • c++如何求任意多边形的面积

    由于项目需要 求解任意不规则多边形的面积 想了很久 也不知道怎么叙述 直接代码展示吧 include