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