PK获取面积
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)编写一个接口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 ...
- Openlayers 3计算长度和面积
1.比较粗糙的计算方式 计算长度 var length = lineFeature.getGeometry().getLength(); if (length > 1000) { length ...
- 吐槽贴:百度地图 api 封装 的实用功能 [源码下载]
ZMap 类 功能介绍 ZMap 是学习百度地图 api 接口,开发基本功能后整的一个脚本类,本类方法功能大多使用 prototype 原型 实现: 包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐 ...
- [Java编程思想-学习笔记]第2章 一切都是对象
2.1 创建新的数据类型:类 通过第一章掌握了面向对象的理论后,我们知道每个对象必定属于一个类型,那么Java如何创建新的数据类型?如下程序所示: class Circle { // 属性 // 方 ...
- Nodejs与ES6系列4:ES6中的类
ES6中的类 4.1.class基本语法 在之前的javascript语法中是不存在class这样的概念,如果要通过构造函数生成一个新对象代码 function Shape(width,height) ...
- [百度地图] ZMap 与 MultiZMap 封装类说明;
ZMap.js 与 MultiZMap 说明 1. ZMap 与 MultiZMap 都是封装一些地图常用的使用方法,类方法功能大多使用 prototype 原型 实现: ZMap 在一个页面只能使用 ...
- 百度地图 api 功能封装类 (ZMap.js) 本地搜索,范围查找实例 [源码下载]
相关说明 1. 界面查看: 吐槽贴:百度地图 api 封装 的实用功能 [源码下载] 2. 功能说明: 百度地图整合功能分享修正版[ZMap.js] 实例源码! ZMap.js 本类方法功能大多使用 ...
- 百度地图 api 功能封装类 (ZMap.js) 新增管理事件功能 [源码下载]
ZMap 功能说明 ZMap.js 本类方法功能大多使用 prototype 原型 实现: 包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐标是否在一个圆圈内,生活服务查询,从经纬度获取地址信息,地 ...
- 百度地图整合功能分享修正版[ZMap.js] 实例源码!
ZMap 功能说明 ZMap 是学习百度地图 api 接口,开发基本功能后整的一个脚本类,本类方法功能大多使用 prototype 原型 实现: 包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐标是 ...
- 《day12---异常》
//91-面向对象-异常-异常的发生和简单应用. /* 异常: java运行时期发生的问题就是异常. Java中运行时的除了异常Exception含有错误Error. 异常:通常发生后可以有针对性的处 ...
随机推荐
- 反射_Class对象功能概述-反射_Class对象功能_获取Field
反射_Class对象功能概述 * Class对象功能: * 获取功能: 1. 获取成员变量们 * Field[] getFields() :获取所有public修饰的成员变量 * Field getF ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘
1.简介 Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Charles也能截获 Android 和 Wind ...
- 动态代理-cglib分析
生成代理类文件的方式 jvm添加此启动参数,后面就是代理类class生成的地址 -Dcglib.debugLocation=~/baldhead/java/dynamic-proxy-cglib/sr ...
- Jenkins CLI命令行
Jenkins CLI命令行 jenkins不光可以UI操作还提供了命令行接口 位置 首页->系统管理->工具和动作->Jenkins 命令行接口 在这个界面下载一个jenkins- ...
- pdf转图片加水印压缩
''' pip install pymupdf pip install pillow ''' import os import uuid import fitz from PIL import Ima ...
- 虚拟机配置代理(虚拟机nat)
桥接 第一步:打开clash allow lan 第二步:找到宿主机在局域网中的IP地址 第三步:配置虚拟机代理 NAT 同上 注意 一.宿主机防火墙要配置好(直接关闭会也有效果, ...
- 和ChatGPT聊了一会天它的学习反映能力惊呆了我
我:用java写一段玫瑰花 ChatGPT:您可以使用 Java 绘制玫瑰花.以下是一段代码: import java.awt.*; import javax.swing.*; public clas ...
- Error: EPERM: operation not permitted, mkdir ‘C:\Program Files\nodejs‘TypeError: Cannot read proper
出现问题: 问题如题,出现场景:vscode运行npm命令 解决办法: 有的友友说安装nodejs时用管理员身份安装,右键没找到最后删掉了此文件即可. 这个文件缓存了之前的配置与现在安装的nodejs ...
- C++练习6 不同参数的传递方式
当函数的形参是变量时,函数内的操作是只对形参的操作,并不会对实参造成影响 当函数的形参是引用时,在函数内对形参操作的同时也会对实参造成影响 1 #include <iostream> 2 ...
- Vue前后端交互、生命周期、组件化开发
目录 Vue前后端交互.生命周期.组件化开发 一.Vue用axios与后端交互 二.Vue的生命周期 三.组件化开发 Vue前后端交互.生命周期.组件化开发 一.Vue用axios与后端交互 如果 ...