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