gp_Pnt描述了三维空间中的一个

gp_Pnt的定义:

class gp_Pnt
{
public:...
private:gp_XYZ coord;
};

默认情况下,位置为原点。

inline gp_Pnt::gp_Pnt() { }

两点的重心。计算公式为:(Alpha*this + Beta*P) / (Alpha + Beta)

inline void gp_Pnt::BaryCenter(const Standard_Real A,const gp_Pnt& P,const Standard_Real B)
{coord.SetLinearForm(A,coord,B,P.coord);coord.Divide(A + B);
}

两个点是否相等的判断:两点间距小于等于容差。

inline Standard_Boolean gp_Pnt::IsEqual(const gp_Pnt& Other,const Standard_Real LinearTolerance) const
{ return Distance (Other) <= LinearTolerance;
}

点关于点的对称变换。

void gp_Pnt::Mirror (const gp_Pnt& P)
{coord.Reverse ();gp_XYZ XYZ = P.coord;XYZ.Multiply (2.0);coord.Add      (XYZ);
}

点关于轴的对称变换。

void gp_Pnt::Mirror (const gp_Ax1& A1)
{gp_Trsf T;T.SetMirror  (A1);T.Transforms (coord);
}

点关于面的对称变换。

void gp_Pnt::Mirror (const gp_Ax2& A2)
{gp_Trsf T;T.SetMirror  (A2);T.Transforms (coord);
}

旋转,A1是旋转轴,Ang是旋转角度。

inline void gp_Pnt::Rotate (const gp_Ax1& A1, const Standard_Real Ang)
{gp_Trsf T;T.SetRotation (A1, Ang);T.Transforms  (coord);
}

缩放

inline void gp_Pnt::Scale (const gp_Pnt& P, const Standard_Real S)
{gp_XYZ XYZ = P.coord;XYZ.Multiply (1.0 - S);coord.Multiply (S);coord.Add      (XYZ);
}

变换

void gp_Pnt::Transform (const gp_Trsf& T)
{if (T.Form() == gp_Identity) { }else if (T.Form() == gp_Translation) { coord.Add (T.TranslationPart ()); }else if (T.Form() == gp_Scale){coord.Multiply (T.ScaleFactor ());coord.Add (T.TranslationPart ());}else if(T.Form() == gp_PntMirror) {coord.Reverse ();coord.Add (T.TranslationPart ());}else { T.Transforms(coord);}
}

平移

inline void gp_Pnt::Translate (const gp_Vec& V)
{ coord.Add (V.XYZ());
}

OpenCasCade数学库 - 点(gp_Pnt)相关推荐

  1. OpenCasCade数学库 - 包围盒(Bnd_Box)的变换(Transformed)

    1.包围盒(Bnd_Box)的定义 class Bnd_Box { public:... private:Standard_Real Xmin;Standard_Real Xmax;Standard_ ...

  2. OpenCasCade数学库 - 函数IsEqual

    1.gp_Dir 方向的相等判断:方向相同.(方向夹角接近0度) inline Standard_Boolean gp_Dir::IsEqual(const gp_Dir& Other, co ...

  3. OpenCasCade数学库 - 方向(gp_Dir)

    gp_Dir描述了三维空间中的一个单位向量. gp_Dir的定义. class gp_Dir { public:... private:gp_XYZ coord; }; 默认情况下,位置为原点,方向为 ...

  4. c++数学库 方法库 向量库等用法

    c++数学库 http://www.cplusplus.com/reference/cmath/ C++ 有用库 https://en.cppreference.com/w/cpp/links/lib ...

  5. math-neon基于NEON指令的数学库

    这是一个开源的库,地址为https://code.google.com/p/math-neon/,根据项目介绍应该是利用neon指令实现的数学库:包括三角.对数.指数等基于浮点的运算实现,以及矩阵运算 ...

  6. STM32 进阶教程 19 - IQmath数学库的使用

    前言 STM32 M3 系列是不带浮点运算单元的,小数运算都是采用定点转浮点试式实现的,本节给大家介绍一个很好用的定点转浮点数学运算库,IQmath是德州仪器 (TI) 的一个高度优化的高精度数学函数 ...

  7. 计算机网络与影视多媒体技术 南京理工大学,计算机网络多媒体数学库和课件结构设计-计算机仿真论文-计算机论文(8页)-原创力文档...

    计算机网络多媒体数学库和课件结构设计-计算机仿真论文-计算机论文 --文章均为WORD文档,下载后可直接编辑使用亦可打印-- 摘要:随着互联网时代的来临,计算机技术被广泛应用于各行各业.教育信息的改革 ...

  8. Lua_第17 章 数学库

    第17 章 数学库 在这一章中(以下关于标准库的几章中相同)我的主要目的不是对每个函数给出完整地说明,而是告诉你标准库可以提供什么功能.为了可以清楚地说明问题,我可能 会忽略一些小的选项或者行为.基本 ...

  9. math.js:灵活强大的JavaScript数学库

    最近为期权开发一些基本技术指标,用到一些C++的数学库,刚好看到JavaScript的math.js库,这里对math.js做一下简单介绍. 一.什么是math.js math.js是一个广泛应用于J ...

  10. gcc编译缺少数学库

    Linux下编译出现以下提示可以在编译的后面加上-lm,例如,arm-none-linux-gnueabi-gcc -o example1 example1.c -lm,意思就是添加数学库的意思,编译 ...

最新文章

  1. 熟悉scala命令,scala语言运行超级素数和猴子大王
  2. 【Whalepaper】CV论文研读 - Involution内卷:超越Convolution的新算子
  3. 光流 | 基于HS光流算法的稠密光流提取(Matlab源代码)
  4. 【数据结构与算法】常用算法
  5. ECMAScript 语法提案的批准流程
  6. EXCEL教程下载地址
  7. C3P0连接池的配置和使用
  8. python做生物信息学分析_Python从零开始第五章生物信息学⑤生存分析(log-rank)
  9. cs6制作拼图游戏 dreamweaver_如何使用Dreamweaver cs6设计拼图游戏?
  10. 计算机毕业设计Java自行车在线租赁管理系统2021(源码+系统+mysql数据库+Lw文档)
  11. 解析12306订票流程
  12. 前端知识-vue-3、组件化开发
  13. 重视论文降重,应对论文查重
  14. [IPhone] 如何将制作图片放大缩小的动作
  15. 换钱计划调用函数c语言编程,CCF NOI1034 钞票兑换
  16. php计数器归零,php计数器lt;?/*-一个简单的计数器*/functio 爱问知识人
  17. VSCode 居然是个娱乐软件?让你 high 到爆的几款插件
  18. java 数组是连续存储吗_数组在Java中储存在()中_学小易找答案
  19. VBA打开已加密的Excel文件
  20. 格式: echo -e \033[字背景颜色 字体颜色m字符串\033[0m

热门文章

  1. for循环,数字类型与字符串
  2. Shell常用实例,查看IP,创建用户,安装应用等。
  3. 当http响应内容较长时 在Filter过滤器中设置响应头部失效的问题
  4. 文心一言API使用教程(python版)
  5. 数据分析终极一问:指标波动多大才算是异常?
  6. 教学中利用计算机软件,[在计算机AUTOCAD软件教学中利用任务驱动教学法的探讨] 任务驱动教学法...
  7. python3绘制股票K线图的那些坑【三】pyQtgraph绘制精美股票K线图--对数系正确实现集成Tushare数据源
  8. 教你3招 保护你的数字遗产
  9. Python 使用torch.autograd.grad实现对输入求导
  10. linux挂载超过2T的大磁盘