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. 01 LED点灯

    新建一个STM32CubeIDE 新工程 选择自己的芯片型号,我的是STM32F103RCT6 选择工程保存位置,不能有中文路径,会报错 选择下载方式.一定要选,不然下次下载有问题 选择时钟来源,我的 ...

  2. C语言定制DEBUG信息

    C语言定制DEBUG信息 背景与问题 在日常编写程序中,我们经常需要输出一些调试信息帮助我们 DEBUG 或者更好的编程,通常我们的做法是这样的: 在需要的地方直接printf(...)输出有用的信息 ...

  3. Python 装饰器原理

    装饰器是 Python 编程中常用的一个功能,可以将通用的逻辑抽象成装饰器,通过装饰器语法应用到不同的目标上,达到增强或修改目标逻辑的目的. 先来看一个简单的例子 # 打印耗时的装饰器 def log ...

  4. Python内置对象(一)

    Python内置对象(一) 分多次讲解 这部分相对比较简单,偶尔一些特殊的做法会强调下(前面加★) 总览 builtins = [_ for _ in dir(__builtins__) if not ...

  5. spring-in-action_day01

    前景说明:SpringInAction主要致力于SpringBoot为基础的讲解,尽可能多的使用SpringBoot,可以减少显行的配置,如xml配置,可以更加的专注于功能的实现. 第一章:主要讲了如 ...

  6. 【已解决】将jsp文件在浏览器打开直接出现代码,在浏览器出现本地地址,tomcat报错

    问题背景: 导入了一个项目直接打开可以,但是想跟一遍代码,把配置文件全部整理成为一个springmvc的基础配置文件 跟着配置到自己tomcat就不管怎样都是下面的截图  希望可以帮到一起报错的朋友快 ...

  7. ECharts 饼图切换数据源bug 开始没数据显示 切换或刷新后显示

    1.出现问题原因 一个饼图,右上方两个按钮分别为今天和本月,分别调用不同接口控制,点击则调用不同接口同时饼图绑定数据源刷新:出现此问题原因点击今日按钮有一个饼图区域形没有数据不显示,对应数据值比例都没 ...

  8. [ARC107D] Number of Multisets

    \(\text{Solution}\) 学习到了一些 \(dp\) 的 \(trick\) 设 \(f_{i,j}\) 表示用了 \(i\) 的元素,当前和为 \(j\) 的方案数 \(dp\) 有两 ...

  9. docker .net core3.1 Dockerfile

    安装步骤和core 2.x 一样 看之前的随笔:Docker配置dotnet core项目 直接看Dockerfile FROM mcr.microsoft.com/dotnet/core/aspne ...

  10. pat乙级 1021个位数统计

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> ...