热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenCasCade(四)常用对象

1.1基本对象(1)OCgp_Pnt类:创建三维空间上的一个几何点对象。例:OCgp_PntpointnewOCgp_Pnt(113,0,0.05)

1.1     基本对象

(1)    OCgp_Pnt类:创建三维空间上的一个几何点对象。

例:OCgp_Pnt point = new OCgp_Pnt(113, 0, 0.05)

(2)    OCTColgp_Array1OfPnt类:创建三维空间几何点的一维数组对象。

例:

OCgp_Pnt P1 = new OCgp_Pnt(0, 0, 1);

            OCgp_Pnt P2 = new OCgp_Pnt(1, 2, 2);

            OCTColgp_Array1OfPnt array = new OCTColgp_Array1OfPnt(1, 2);                                     

            array.SetValue(1, P1);

            array.SetValue(2, P2);

(3)    OCTColgp_Array2OfPnt:二维点数组;

例:

OCTColgp_Array2OfPnt Poles = new OCTColgp_Array2OfPnt(1214);

            Poles.SetValue(11new OCgp_Pnt(000));

            Poles.SetValue(12new OCgp_Pnt(0102));

            Poles.SetValue(13new OCgp_Pnt(02010));

            Poles.SetValue(14new OCgp_Pnt(0300));

            Poles.SetValue(21new OCgp_Pnt(1005));

            Poles.SetValue(22new OCgp_Pnt(10103));

            Poles.SetValue(23new OCgp_Pnt(102020));

            Poles.SetValue(24new OCgp_Pnt(10300));

 

(4)    OCTColStd_Array1OfReal:一维Double数组。

例:

OCTColStd_Array1OfReal UKnots = new OCTColStd_Array1OfReal(12);

            UKnots.SetValue(10);

            UKnots.SetValue(21);

(5)    OCTColStd_Array1OfInteger:一维Integer数组

例:

OCTColStd_Array1OfInteger VMults = new OCTColStd_Array1OfInteger(13);

            VMults.SetValue(13);

            VMults.SetValue(21);

            VMults.SetValue(33);

 

(6)    OCTopoDS_ListOfShape:拓扑对象LIST集合。

(7)    OCTopTools_ListIteratorOfListOfShape:拓扑对象LIST集合的迭代器。

(8)    OCgp_Dir:单位向量。

(9)    OCgp_Ver:向量。

(10)  OCGeom_Axis1Placement:

(11)  OCgp_Trsf:

定义一个矩阵变换的类

 --可以定义平移、旋转、缩放的矩阵;

 --可以对称于一个点,一条线,一个平面;

--复杂的变换可以通过初等变换来实现。

实例参见拓扑变换目录;

(12)  OCgp_GTrsf:

它与OCgp_Trsf变换是相似的。

--只能通过三组XYZ坐标(由XYZ坐标组成的3*3的变换矩阵)来进行变换。

--应用此变换,会改变原有的几何对象。

实例参见拓扑变换目录;

 

(13)  OCgp_Mat:矩阵对象

例:OCgp_Mat rot = new OCgp_Mat(1, 0, 0, 0, 0.5, 0, 0, 0, 1.5);

 

1.2     坐标轴对象

(1)    OCgp_Ax1

--- Purpose : Describes an axis in 3D space.  3D空间定义一个轴,

-- An axis is defined by:一个轴可以按照下列方式定义:

-- -   its origin (also referred to as its "Location point"), and

-- -   its unit vector (referred to as its "Direction" or "main   Direction").

一个原点和一个单位向量

-- An axis is used:一个轴用于:

-- -   to describe 3D geometric entities (for example, the

描述三维几何实体

-- axis of a revolution entity). It serves the same purpose

一个旋转实体的轴

-- as the STEP function "axis placement one axis", or

作为STEP功能的 一个轴位移

 -- -   to define geometric transformations (axis of

--   symmetry, axis of rotation, and so on).

定义几何旋转

-- For example, this entity can be used to locate a geometric entity

--  or to define a symmetry axis.

例如一个轴可以用于定位一个几何实体

(2)    OCgp_Ax2

--- Purpose :

        --  Describes a right-handed coordinate system in 3D space.

在三维空间描述一个右手坐标系

        -- A coordinate system is defined by:

一个坐标系可以通过下列方式定义

        -- -   its origin (also referred to as its "Location point"), and

        -- -   three orthogonal unit vectors, termed respectively the

        -- "X Direction", the "Y Direction" and the "Direction" (also

        --   referred to as the "main Direction").

原点,三个直角坐标单位向量,分别是X方向、Y方向。。。

        -- The "Direction" of the coordinate system is called its

        -- "main Direction" because whenever this unit vector is

        -- modified, the "X Direction" and the "Y Direction" are

        -- recomputed. However, when we modify either the "X

        -- Direction" or the "Y Direction", "Direction" is not modified.

坐标系统的方向叫做主方向,因为任何情况下当这个单位向量修改的时候

X方向和Y方向都会重新计算,但是

当我们修改X方向或者Y方向的时候,主方向是不修改的

        -- The "main Direction" is also the "Z Direction".

主方向也叫做Z方向

        -- Since an Ax2 coordinate system is right-handed, its

        -- "main Direction" is always equal to the cross product of

        -- its "X Direction" and "Y Direction". (To define a

        -- left-handed coordinate system, use gp_Ax3.)

因为Ax2坐标系统是右手坐标系,主方向等于X方向和Y方向的差乘积。

(3)    OCgp_Ax3

类似于OCgp_Ax2:不同的地方就是既可以是右手坐标系,也可以是左手坐标系

 

 

1.3     枚举类型

(1)    OCQuantity_NameOfColor:颜色枚举

(2)    OCAIS_DisplayMode:显示模式枚举

(3)    OCGraphic3d_NameOfMaterial:显示材料枚举

(4)    OCTopAbs_ShapeEnum:拓扑类型枚举

例:判断一个拓扑几何是否为边Edge

public bool IsEdge(OCTopoDS_Shape aS)

          {

            return (!aS.IsNull() && (aS.ShapeType() == OCTopAbs_ShapeEnum.TopAbs_EDGE));

          }

(5)    V3d_TypeOfOrientation:三维取向类型

 

 

1.4     其它

(1)    Select3D_Projector:A framework to define 3D projectors

(2)    ProjLib:提供曲线沿着给定方向在一个平面上的投影;

         提供曲面上曲线的投影用于计算参数空间中的曲线;

(3)    ElSLib:提供初等曲面的几何计算静态方法

(4)    TopExp_Explorer:拓扑类型的展开

例:

           OCTopExp_Explorer ex = new OCTopExp_Explorer();

            for (ex.Init(ShapeCut2, OCTopAbs_ShapeEnum.TopAbs_FACE, OCTopAbs_ShapeEnum.TopAbs_SHAPE); ex.More(); ex.Next())

            {

                OCTopoDS_Face aE = OCTopoDS.Face(ex.Current());

            }


推荐阅读
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • C++中的三角函数计算及其应用
    本文介绍了C++中的三角函数的计算方法和应用,包括计算余弦、正弦、正切值以及反三角函数求对应的弧度制角度的示例代码。代码中使用了C++的数学库和命名空间,通过赋值和输出语句实现了三角函数的计算和结果显示。通过学习本文,读者可以了解到C++中三角函数的基本用法和应用场景。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
author-avatar
qwwdzfy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有