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. SpringBoot+Vue前后端分离项目,在过滤器取值为Null

    SpringBoot+Vue前后端分离项目,在过滤器取值为Null 是因为SessionID的问题,因为axios每次的请求都是一次新的sessionId,所以只需要在main.js下配置如下 axi ...

  2. Spring03-IOC-循环依赖的实现(Debug查看spring解决循环依赖的过程)

    1 什么是循环依赖 如下,有类A和B,A中有一个类型为B的属性b,B中有一个类型为A的属性a,A和B相互依赖 public class A { private B b; public B getB() ...

  3. vivo官网App模块化开发方案-ModularDevTool

    作者:vivo 互联网客户端团队- Wang Zhenyu 本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法. 说明:本工具基于vivo互联网客户端 ...

  4. 2.5.scrollView和swiper组件的使用

    # scroll-view 可滚动视图区域.用于区域滚动. 需注意在webview渲染的页面中,区域滚动的性能不及页面滚动. 属性说明 属性名 类型 默认值 说明 平台差异说明 scroll-x Bo ...

  5. Quartz.NET 任务调度框架的demo实例

    1.新建项目 简单实例,新建一个控制台程序 2.Nuget安装Quartz 3.编写代码 using Quartz; using Quartz.Impl; using Quartz.Logging; ...

  6. odoo 为可编辑列表视图字段搜索添加查询过滤条件

    实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图,列表网仓记录详情页面(form视图),编辑内联视图中的货主记录,为货主和仓库字段搜索,添加过滤 ...

  7. ORACLE数据库起不来

    由于意外导致数据库无法启动 首先切换到oracle用户,查看profile文件. su - oracle cat .bash_profile 然后进入数据库,查看挂载上 sqlplus "/ ...

  8. 通过反射机制简化 JDBC ResultSet 实体类的注入

    提出问题 查询完某个表之后,一般都是把结果的每一个字段注入到一个实体类中.比如,数据库 users 表,查询出来的结果注入到 User 实体类中. 通过 while 遍历 ResultSet,把字段对 ...

  9. ASP.NET Core - 配置系统之配置读取

    一个应用要运行起来,往往需要读取很多的预设好的配置信息,根据约定好的信息或方式执行一定的行为. 配置的本质就是软件运行的参数,在一个软件实现中需要的参数非常多,如果我们以 Hard Code(硬编码) ...

  10. Java的注释和标识符

    java 的注释规则 1. 单行注释 语法:// 描述://用于当行注释,与JavaScript一样 //这是一个代码注释 2. javadoc注释 语法: /** *注释内容 / 描述:多行注释中可 ...