BOOL PK_AskFaceAreas(tag_t face_tag, double tol, double &areas)
{//获得面积
tag_t ps_tag = NULL_TAG;
double amount[3] = { 0.0, 0.0, 0.0 };
double mass[3] = { 0.0, 0.0, 0.0 };
double c_of_g[3] = { 0.0, 0.0, 0.0 };
double m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
double periphery[3] = { 0.0, 0.0, 0.0 };
PK_FACE_t pkFace = 0;
PK_TOPOL_eval_mass_props_o_t props_o_t; areas = 0.0;
if (NULL_TAG == face_tag
|| UF_PS_ask_ps_tag_of_object(face_tag, &ps_tag))
return FALSE;
pkFace = ps_tag;
if (tol < 0.99)
tol = 0.99;
if (tol > 1.0)
tol = 1.0;
PK_TOPOL_eval_mass_props_o_m(props_o_t);
props_o_t.mass = PK_mass_c_of_g_c;
PK_TOPOL_eval_mass_props(1, &pkFace, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);
areas = amount[0] * 1000.0 * 1000.0;
return TRUE;
}

BOOL PK_AskFaceAreas(CUIntArray &tFaceTags, double tol, double &areas)
{//获得面积
int i = 0;
tag_t ps_tag = NULL_TAG;
double amount[3] = { 0.0, 0.0, 0.0 };
double mass[3] = { 0.0, 0.0, 0.0 };
double c_of_g[3] = { 0.0, 0.0, 0.0 };
double m_of_i[6] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
double periphery[3] = { 0.0, 0.0, 0.0 };
PK_FACE_t *pkFaces = NULL;
CUIntArray temps;
PK_TOPOL_eval_mass_props_o_t props_o_t; areas = 0.0;
if (0 == tFaceTags.GetSize())
return FALSE;
for (i = 0; i < tFaceTags.GetSize(); i++)
{
if (!UF_PS_ask_ps_tag_of_object(tFaceTags[i], &ps_tag))
{
temps.Add(ps_tag);
}
}
if (0 == temps.GetSize())
return FALSE;
pkFaces = new PK_FACE_t[temps.GetSize()];
for (i = 0; i < temps.GetSize(); i++)
{
pkFaces[i] = temps[i];
}
if (tol < 0.99)
tol = 0.99;
if (tol > 1.0)
tol = 1.0;
PK_TOPOL_eval_mass_props_o_m(props_o_t);
props_o_t.mass = PK_mass_c_of_g_c;
PK_TOPOL_eval_mass_props(temps.GetSize(), pkFaces, tol, &props_o_t, amount, mass, c_of_g, m_of_i, periphery);
areas = amount[0] * 1000.0 * 1000.0;
delete pkFaces;
pkFaces = NULL;
return TRUE;
}

————————————————
版权声明:本文为CSDN博主「梅雷」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/raley66/article/details/100764229

PK获取面积的更多相关文章

  1. (1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量x,

    package com.hanqi.test; //创建接口 public interface ShapePara { //获取面积的方法 double getArea(); //获取周长的方法 do ...

  2. Openlayers 3计算长度和面积

    1.比较粗糙的计算方式 计算长度 var length = lineFeature.getGeometry().getLength(); if (length > 1000) { length ...

  3. 吐槽贴:百度地图 api 封装 的实用功能 [源码下载]

    ZMap 类 功能介绍 ZMap 是学习百度地图 api 接口,开发基本功能后整的一个脚本类,本类方法功能大多使用 prototype 原型 实现: 包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐 ...

  4. [Java编程思想-学习笔记]第2章 一切都是对象

    2.1  创建新的数据类型:类 通过第一章掌握了面向对象的理论后,我们知道每个对象必定属于一个类型,那么Java如何创建新的数据类型?如下程序所示: class Circle { // 属性 // 方 ...

  5. Nodejs与ES6系列4:ES6中的类

    ES6中的类 4.1.class基本语法 在之前的javascript语法中是不存在class这样的概念,如果要通过构造函数生成一个新对象代码 function Shape(width,height) ...

  6. [百度地图] ZMap 与 MultiZMap 封装类说明;

    ZMap.js 与 MultiZMap 说明 1. ZMap 与 MultiZMap 都是封装一些地图常用的使用方法,类方法功能大多使用 prototype 原型 实现: ZMap 在一个页面只能使用 ...

  7. 百度地图 api 功能封装类 (ZMap.js) 本地搜索,范围查找实例 [源码下载]

    相关说明 1. 界面查看: 吐槽贴:百度地图 api 封装 的实用功能 [源码下载] 2. 功能说明: 百度地图整合功能分享修正版[ZMap.js] 实例源码! ZMap.js 本类方法功能大多使用 ...

  8. 百度地图 api 功能封装类 (ZMap.js) 新增管理事件功能 [源码下载]

    ZMap 功能说明 ZMap.js 本类方法功能大多使用 prototype 原型 实现: 包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐标是否在一个圆圈内,生活服务查询,从经纬度获取地址信息,地 ...

  9. 百度地图整合功能分享修正版[ZMap.js] 实例源码!

    ZMap 功能说明 ZMap 是学习百度地图 api 接口,开发基本功能后整的一个脚本类,本类方法功能大多使用 prototype 原型 实现: 包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐标是 ...

  10. 《day12---异常》

    //91-面向对象-异常-异常的发生和简单应用. /* 异常: java运行时期发生的问题就是异常. Java中运行时的除了异常Exception含有错误Error. 异常:通常发生后可以有针对性的处 ...

随机推荐

  1. File类获取功能的方法-File类判断功能的方法

    File类获取功能的方法 获取功能的方法 public string getAbsolutePath()∶返回此File的绝对路径名字符串. public string getPath() ︰将此Fi ...

  2. 转载:SQL分页查询总结

    [转载]SQL分页查询总结 开发过程中经常遇到分页的需求,今天在此总结一下吧.    简单说来方法有两种,一种在源上控制,一种在端上控制.源上控制把分页逻辑放在SQL层:端上控制一次性获取所有数据,把 ...

  3. 使用vscode调试ros

    https://blog.csdn.net/u012254599/article/details/106143540/ CMakeLists.txt set(CMAKE_BUILD_TYPE &quo ...

  4. 学习Java Day21

    今天学习了静态导入,可以导入静态方法和静态字段

  5. 利用Git+GitHub进行团队协作开发

    自己之前写过两篇关于Git和GItHub使用的文章,分别是 浅谈使用git 进行版本控制博客链接:https://www.cnblogs.com/wj-1314/p/7992543.html 使用Gi ...

  6. 不借助脚手架手动搭建react项目(webpack5 + Antd4 + React18)

    前言 工作中发现很多同事在接到一个新项目时,总是基于现有项目复制一份配置文件,然后写自己的组件及业务代码,以至于项目中存在一些冗余的依赖及配置信息.并且由于已有项目的依赖包及插件比较老,新项目也一直没 ...

  7. 轻量级CI/CD发布部署环境搭建及使用_04_docker安装nexus3

    轻量级CI/CD发布部署环境搭建及使用_04_配置宿主机的环境:jdk.maven.node.pythod2 尽自己的绵薄之力,为开源技术分享添砖加瓦   1,搜索nexus3 docker sear ...

  8. rlwrap解决opengauss,pg,oracle上下左右及回退乱码

    安装下rlwrap,最新版本是0.43下载地址 https://fossies.org/linux/privat/rlwrap-0.43.tar.gz/```安装rlwraptar -zxvf rlw ...

  9. linus->查看文件及文件夹大小相关命令

    背景: 经常会遇到服务器服务突然停了,去服务器一看服务正常运行. 然后在排查服务器容量,发现100%使用. 那么记下来一些常用命令是有必要的. 相关命令: df -hl   查看占用情况. du -s ...

  10. 多个mysql版本并行运行

    mysql管理工具:mysql服务器需要客户端连接到服务器上进行管理.客户端有可能是个软件,也有可能是个java程序 安装mysql启用服务起别名+登录账号①mysqld install -m8;ne ...