3D Geometry Types in OpenCascade
eryar@163.com
摘要Abstract:本文對(duì)OpenCascade中的幾何類型進(jìn)行簡要介紹。文章內(nèi)容來源為OpenCascade的介紹文檔overview。
關(guān)鍵字Key Words:OpenCascade、Geometry
OpenCascade中Geom包提供了符合STEP part42部分的三維幾何對(duì)象的實(shí)現(xiàn)。特別提供了以下功能:
l 對(duì)點(diǎn)、向量、曲線、曲面的描述;
l 它們?cè)谌S坐標(biāo)空間中的位置;
l 它們的幾何變換,如平移、旋轉(zhuǎn)、鏡像、縮放,或者這些變換的組合;
幾何曲線曲面(Geom Curves and Surfaces)的重要特點(diǎn)是他們是參數(shù)化的(parameterized)。每個(gè)類都提供了對(duì)曲線、曲面參數(shù)方程相關(guān)計(jì)算的功能。特別地,計(jì)算如下點(diǎn):
n 曲線上參數(shù)u對(duì)應(yīng)的點(diǎn);
n 曲面上參數(shù)(u,v)對(duì)應(yīng)的點(diǎn);
n 曲面上參數(shù)(u,v)處的1,2,...,N次導(dǎo)數(shù)的向量;
由于曲線曲面是參數(shù)表示的,所以Geom曲線、曲面是有方向(oriented)的。OpenCascade還提供了與參數(shù)表示的有向的曲線曲面不同的,類名相同或相似的包gp。Geom包還提供了將Geom與gp包中曲線曲面互相轉(zhuǎn)換的功能。Geom提供了更復(fù)雜的曲線曲面,包含:
l Bezier和B樣條曲線曲面Bezier and BSpline curves and surfaces;
l 掃掠曲面,如旋轉(zhuǎn)、拉伸曲面swept surfaces, revolution and linear extrusion surfaces;
l 裁剪曲線曲面trimmed curves and surfaces;
l 偏移曲線曲面offset curves and surfaces;
Geom包中的對(duì)象根據(jù)繼承結(jié)構(gòu)來組織,Geom_Surface的類圖如下所示:
所以,球(具體類為Geom_SphericalSurface)也是一個(gè)初等曲面(elementary surface),因?yàn)樗蒅eom_ElementarySurface派生。Bezier曲面(具體類為Geom_BezierSurface)也是一個(gè)有界曲面(bounded surface),因?yàn)樗蒅eom_BoundedSurface派生。這兩種曲面還都是曲面(抽象類Geom_Surface)。由抽象基類Geom_Geometry派生的曲線、點(diǎn)、向量,描述了Geom包中的幾何對(duì)象通用的屬性。
這個(gè)派生結(jié)構(gòu)是開放的,也可用來定義新的對(duì)象。
最后,Geom對(duì)象也在更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)中使用。這也是拓樸數(shù)據(jù)結(jié)構(gòu)(topological data structure)中使用他們的原因。例如:
Geom包使用gp包中的功能來實(shí)現(xiàn)初等代數(shù)積分和對(duì)幾何對(duì)象的基本分析;
描述可用于Geom對(duì)象的幾何變換;
描述Geom對(duì)象的初等數(shù)據(jù)結(jié)構(gòu)。
畢竟包Geom主要是提供數(shù)據(jù)而不是算法。可使參考包GC去查找關(guān)于構(gòu)造Geom對(duì)象的更多算法。