云计算百科
云计算领域专业知识百科平台

三维CAD关键技术探讨(十三)——拓扑实体面

第13章 拓扑实体面

章节定位:B-Rep 拓扑层次中连接环与壳的关键二维实体
关键词:拓扑面;B-Rep;参数域;p-curve;第一/第二基本形式;法向定向;自交修复


摘要

面(Face)是 B-Rep 拓扑层次中的二维实体,关联一个曲面作为几何支撑,由外环与内环界定其在参数域上的区域。面是几何与拓扑交汇的核心:既承载拓扑结构(环边界、方向、邻接),又承载几何信息(曲面方程、法向、曲率)。本章系统建立面的原理、表示、操作与工程细节,涵盖参数域修剪、方向定向、p-curve 表示、第一/第二基本形式、面积积分、点在面内判定、面到点距离、布尔切分等关键内容,并给出主流内核(OCCT/Parasolid/CGM/ACIS/Granite)的实现对比与工程调优建议。本章是理解 B-Rep 几何表达的核心一章,为第 14 章壳与体铺垫。


13.1 概述与背景

在 B-Rep 拓扑层次中,面(Face)是连接环与壳的关键二维实体,也是几何造型中工程师最直接感知的实体——一个零件的每一个平整表面、每一个圆柱面、每一个自由曲面都是 B-Rep 中的一个面。面关联一个曲面作为几何支撑,并由一个外环(定义主体边界)和零或多个内环(定义孔)界定其在曲面上的区域。

面是 B-Rep 中几何与拓扑交汇的核心:

  • 拓扑结构:环边界、方向、邻接;
  • 几何信息:曲面方程、法向、曲率。

几乎所有几何操作都围绕面展开:

操作面对应的角色
渲染 画面(离散为三角网格)
布尔 切分面(求交产生新边)
网格化 离散面(FEA 网格)
质量计算 积面积(面积分)
工程图 投影面(HLR 消隐)

面的表示与处理质量直接决定内核的几何表达能力与鲁棒性。

13.1.1 面的工程实现八大要素

面的工程实现是 B-Rep 中最丰富的:

  • 曲面几何:平面、圆柱、圆锥、球、环面等解析曲面,以及 NURBS、贝塞尔、修剪曲面等,需支持求值、求导、求逆、曲率;
  • 参数域:曲面 S(u,v)S(u,v)S(u,v) 在参数域 DDD(由环定义)上的部分,DDD 是 2D 参数域上的修剪区域;
  • 方向:法向是否与曲面自然法向一致,由 orientation 决定;
  • 容差:面到边距离在容差内即贴合;
  • 可修剪:参数域 DDD 由外环 −-− 内环定义,支持任意形状面;
  • 可自交:曲面自交需检测修复;
  • 布尔切分:求交产生新边,新边把面切分为片段;
  • p-curve:环边在参数域的像。
  • 本章将系统建立面的原理、表示、操作与工程细节。


    13.2 历史与发展演进

    面作为拓扑实体与 B-Rep 同生。

    时期进展
    1970s Braid BUILD-1 中面关联曲面与环;早期面仅支持解析曲面(平面、圆柱等)
    1980–90s NURBS 成熟,面可关联 NURBS 曲面,表达自由曲面;修剪曲面随 NURBS 普及
    1990s 面的方向与 orientation 在半边结构中通过法向约定处理;OCCT 中通过 TopoDS_Face 的 Orientation(FORWARD/REVERSED)表示
    1990s–2000s 面的自交检测与修复随 Shape Healing 成熟;OCCT 的 ShapeFix_Face、ShapeUpgrade 修复面自交、退化、错向
    2000s 面的参数域表示(Geom2d 曲线 p-curve)随修剪曲面成熟,支持面上操作在 2D 参数域进行

    至今,面的表示与处理已标准化,各内核差异在曲面类型支持与容差模型。


    13.3 核心概念与定义

    13.3.1 面(Face)

    B-Rep 拓扑层次的二维实体,关联一个曲面(几何支撑),由外环 + 内环界定参数域区域。

    13.3.2 几何支撑

    面关联一个曲面:平面(Geom_Plane)、圆柱(Geom_CylindricalSurface)、圆锥、球、环面(解析曲面)、NURBS 曲面(Geom_BSplineSurface)、贝塞尔曲面、旋转曲面、拉伸曲面等。

    13.3.3 参数域与修剪

    面关联曲面 S(u,v)S(u,v)S(u,v) 与参数域 DDD。DDD 由外环(主体)−-− 内环(孔)定义。面是:

    F=S(D)={S(u,v):(u,v)∈D}
    F = S(D) = \\{ S(u,v) : (u,v) \\in D \\}
    F=S(D)={S(u,v):(u,v)∈D}

    修剪曲面支持任意形状面。

    13.3.4 外环与内环

    • 外环:定义面主体边界(参数域外边界);
    • 内环:定义孔(参数域内边界)。

    环在参数域上是 p-curve。

    13.3.5 方向(Orientation)

    FORWARD(法向取曲面自然法向)或 REVERSED(取反)。面法向:

    n(u,v)=orientation×∂S/∂u×∂S/∂v∣∂S/∂u×∂S/∂v∣
    \\mathbf{n}(u,v) = \\text{orientation} \\times \\frac{\\partial S/\\partial u \\times \\partial S/\\partial v}{\\left| \\partial S/\\partial u \\times \\partial S/\\partial v \\right|}
    n(u,v)=orientation×∣∂S/∂u×∂S/∂v∣∂S/∂u×∂S/∂v​

    13.3.6 容差(Tolerance)

    面带容差 ε\\varepsilonε。边到面距离 ≤ε\\leq \\varepsilon≤ε 即贴合。容差面是容差建模的基础。

    13.3.7 自交

    曲面 S(u,v)S(u,v)S(u,v) 自交——存在 (u1,v1)≠(u2,v2)(u_1, v_1) \\neq (u_2, v_2)(u1​,v1​)=(u2​,v2​) 使 S(u1,v1)=S(u2,v2)S(u_1, v_1) = S(u_2, v_2)S(u1​,v1​)=S(u2​,v2​)。合法面不应自交,自交需修复。

    13.3.8 参数表示与 p-curve

    面上点 S(u,v)S(u,v)S(u,v),(u,v)∈D(u,v) \\in D(u,v)∈D。法向、曲率在参数域计算。p-curve 是面环边在参数域的像(Geom2d_Curve),使面上边操作在 2D 参数域进行。

    13.3.9 共享

    两面共享边时,边对象共享。面本身被壳引用时共享。


    13.4 技术原理详解

    面的工程实现围绕“表示、创建、查询、求值、方向、修剪、自交”展开。

    13.4.1 表示

    OCCT 的 TopoDS_Face 是轻量句柄,实际数据在 BRep_TFace(TShape)中:

    字段含义
    surface 曲面(Geom_Surface)
    wires 环列表(外环 + 内环)
    tolerance 容差
    location 位置变换

    TopoDS_Face 加 Orientation。

    13.4.2 创建

    API语义
    BRepBuilderAPI_MakeFace(surface) 从曲面创建(无修剪,全参数域)
    BRepBuilderAPI_MakeFace(surface, wire) 从曲面与外环创建
    BRepBuilderAPI_MakeFace(wire) 从平面环创建平面面
    体素创建 生成面(如立方体 6 个平面面)

    13.4.3 查询

    查询项API
    曲面 BRep_Tool::Surface(face) 返回 Geom_Surface
    环 face.OuterWire、face.Wires(外环 + 内环)
    容差 BRep_Tool::Tolerance(face)
    方向 face.Orientation()
    参数域 Geom_Surface::Bounds 返回 (u1,u2,v1,v2)(u_1, u_2, v_1, v_2)(u1​,u2​,v1​,v2​) 全域,实际域 DDD 由环定义

    13.4.4 求值

    面上一点 S(u,v)S(u,v)S(u,v):Geom_Surface::Value(u,v)。法向:D1(u,v) 返回 ∂S/∂u,∂S/∂v\\partial S/\\partial u, \\partial S/\\partial v∂S/∂u,∂S/∂v,叉积得法向。曲率:D2 返回二阶导,计算高斯曲率、主曲率。BRepAdaptor_Surface 封装。

    13.4.5 方向处理

    面法向 = orientation×(∂S/∂u×∂S/∂v)\\text{orientation} \\times (\\partial S/\\partial u \\times \\partial S/\\partial v)orientation×(∂S/∂u×∂S/∂v)。FORWARD 取自然法向,REVERSED 取反。方向决定面在体中朝外还是朝内(外壳面法向朝外、内壳朝内)。

    13.4.6 修剪与参数域

    面参数域 DDD 由外环 −-− 内环定义。点在面上:S−1(p)∈DS^{-1}(p) \\in DS−1(p)∈D。点在面内判定:参数 (u,v)(u,v)(u,v) 在外环内且所有内环外。面积:

    A=∬D∣∂S∂u×∂S∂v∣ du dv
    A = \\iint_D \\left| \\frac{\\partial S}{\\partial u} \\times \\frac{\\partial S}{\\partial v} \\right| \\, du \\, dv
    A=∬D​​∂u∂S​×∂v∂S​​dudv

    13.4.7 p-curve

    面环边在参数域的像。BRep_Tool::CurveOnSurface(edge, surface) 查询。p-curve 使面上边操作(求交、分类)在 2D 参数域进行,降维提效。

    13.4.8 自交检测

    曲面自交检测:采样参数域,找 S(u1,v1)=S(u2,v2)S(u_1, v_1) = S(u_2, v_2)S(u1​,v1​)=S(u2​,v2​) 的 (u1,v1)≠(u2,v2)(u_1, v_1) \\neq (u_2, v_2)(u1​,v1​)=(u2​,v2​)。ShapeFix_Face 或 IntTools 检测。自交面需修复(重建模或拆分)。

    13.4.9 布尔切分

    布尔求交产生新边(交线),新边把面切分为“在对方内/外/边界”片段。切分通过 mef(make edge face)加边加面实现。

    13.4.10 面到点距离

    d=min⁡(u,v)∈D∣S(u,v)−p∣
    d = \\min_{(u,v) \\in D} \\left| S(u,v) – \\mathbf{p} \\right|
    d=(u,v)∈Dmin​∣S(u,v)−p∣

    数值优化(牛顿)或采样。用于拾取、最近点。


    13.5 数学理论与公式推导

    13.5.1 面的几何表示

    面 FFF 关联曲面 S:D→R3S: D \\to \\mathbb{R}^3S:D→R3,(u,v)∈D(u,v) \\in D(u,v)∈D。面是 S(D)S(D)S(D)。DDD 由外环 −-− 内环定义。

    13.5.2 参数域与修剪

    D=Douter∖(Dinner1∪Dinner2∪⋯ )
    D = D_{\\text{outer}} \\setminus (D_{\\text{inner1}} \\cup D_{\\text{inner2}} \\cup \\cdots)
    D=Douter​∖(Dinner1​∪Dinner2​∪⋯)

    DouterD_{\\text{outer}}Douter​ 外环内,DinnerD_{\\text{inner}}Dinner​ 内环内。面 =S(D)= S(D)=S(D)。

    13.5.3 求值与求导

    S(u,v)S(u,v)S(u,v) 用 de Boor(NURBS)或解析。∂S/∂u\\partial S/\\partial u∂S/∂u、∂S/∂v\\partial S/\\partial v∂S/∂v 一阶偏导。二阶偏导 ∂2S/∂u2\\partial^2 S/\\partial u^2∂2S/∂u2、∂2S/∂u∂v\\partial^2 S/\\partial u \\partial v∂2S/∂u∂v、∂2S/∂v2\\partial^2 S/\\partial v^2∂2S/∂v2。

    13.5.4 法向

    n(u,v)=orientation×∂S/∂u×∂S/∂v∣∂S/∂u×∂S/∂v∣
    \\mathbf{n}(u,v) = \\text{orientation} \\times \\frac{\\partial S/\\partial u \\times \\partial S/\\partial v}{\\left| \\partial S/\\partial u \\times \\partial S/\\partial v \\right|}
    n(u,v)=orientation×∣∂S/∂u×∂S/∂v∣∂S/∂u×∂S/∂v​

    13.5.5 第一基本形式(度量)

    E=∂S∂u⋅∂S∂u,F=∂S∂u⋅∂S∂v,G=∂S∂v⋅∂S∂v
    E = \\frac{\\partial S}{\\partial u} \\cdot \\frac{\\partial S}{\\partial u}, \\quad
    F = \\frac{\\partial S}{\\partial u} \\cdot \\frac{\\partial S}{\\partial v}, \\quad
    G = \\frac{\\partial S}{\\partial v} \\cdot \\frac{\\partial S}{\\partial v}
    E=∂u∂S​⋅∂u∂S​,F=∂u∂S​⋅∂v∂S​,G=∂v∂S​⋅∂v∂S​

    面积元素:

    dA=EG−F2 du dv
    dA = \\sqrt{EG – F^2} \\, du \\, dv
    dA=EG−F2​dudv

    13.5.6 第二基本形式(曲率)

    L=n⋅∂2S∂u2,M=n⋅∂2S∂u∂v,N=n⋅∂2S∂v2
    L = \\mathbf{n} \\cdot \\frac{\\partial^2 S}{\\partial u^2}, \\quad
    M = \\mathbf{n} \\cdot \\frac{\\partial^2 S}{\\partial u \\partial v}, \\quad
    N = \\mathbf{n} \\cdot \\frac{\\partial^2 S}{\\partial v^2}
    L=n⋅∂u2∂2S​,M=n⋅∂u∂v∂2S​,N=n⋅∂v2∂2S​

    高斯曲率与平均曲率:

    K=LN−M2EG−F2,H=EN−2FM+GL2(EG−F2)
    K = \\frac{LN – M^2}{EG – F^2}, \\qquad
    H = \\frac{EN – 2FM + GL}{2(EG – F^2)}
    K=EG−F2LN−M2​,H=2(EG−F2)EN−2FM+GL​

    主曲率:

    k1,k2=H±H2−K
    k_1, k_2 = H \\pm \\sqrt{H^2 – K}
    k1​,k2​=H±H2−K​

    13.5.7 面面积

    A=∬DEG−F2 du dv
    A = \\iint_D \\sqrt{EG – F^2} \\, du \\, dv
    A=∬D​EG−F2​dudv

    数值积分(Gauss)在参数域 DDD 上。

    13.5.8 点在面内

    p\\mathbf{p}p 在面 FFF 内   ⟺  \\iff⟺ S−1(p)∈DS^{-1}(\\mathbf{p}) \\in DS−1(p)∈D。即参数 (u,v)(u,v)(u,v) 在外环内且所有内环外。用绕数判定。

    13.5.9 面到点距离

    d=min⁡(u,v)∈D∣S(u,v)−p∣
    d = \\min_{(u,v) \\in D} \\left| S(u,v) – \\mathbf{p} \\right|
    d=(u,v)∈Dmin​∣S(u,v)−p∣

    牛顿迭代从采样初值优化。

    13.5.10 p-curve

    边 eee 曲线 C(t)C(t)C(t),面 FFF 曲面 S(u,v)S(u,v)S(u,v)。p-curve:

    (u(t),v(t))=S−1(C(t))
    (u(t), v(t)) = S^{-1}(C(t))
    (u(t),v(t))=S−1(C(t))

    即 3D 曲线在参数域的像。

    13.5.11 欧拉公式中的面

    FFF 是面数:

    V−E+F−L=2(S−G)
    V – E + F – L = 2(S – G)
    V−E+F−L=2(S−G)

    加面(mef)使 F+1F+1F+1。


    13.6 算法与数据结构详解

    13.6.1 面数据结构

    class Face(TShape):
    surface: Geom_Surface # 曲面几何支撑
    wires: List[TopoDS_Wire] # 外环 + 内环
    tolerance: float

    class TopoDS_Face(Shape):
    tshape: Handle[Face]
    location: Location
    orientation: Orientation # FORWARD/REVERSED

    13.6.2 创建面

    function makeFace(surface, outerWire, innerWires=[]):
    tf = Face(surface, [outerWire] + innerWires)
    return TopoDS_Face(tshape=tf, orientation=FORWARD)

    13.6.3 面上求值与法向

    function faceValue(face, u, v):
    surface = BRep_Tool.Surface(face)
    return surface.value(u, v)

    function faceNormal(face, u, v):
    surface = BRep_Tool.Surface(face)
    Su, Sv = surface.d1(u, v) # 偏导
    n = Su.cross(Sv).normalize()
    if face.orientation == REVERSED:
    n = -n
    return n

    13.6.4 点在面内

    function pointInFace(p, face):
    surface = BRep_Tool.Surface(face)
    (u, v) = surface.inverse(p) # 求逆
    outerWire = face.outerWire
    innerWires = face.wires[1:]
    if not pointInWireParam((u,v), outerWire, surface):
    return False # 不在外环内
    for inner in innerWires:
    if pointInWireParam((u,v), inner, surface):
    return False # 在内环内(孔)
    return True

    13.6.5 面面积

    function faceArea(face):
    surface = BRep_Tool.Surface(face)
    # 在参数域 D 上数值积分 √(EG-F²)
    D = paramDomain(face) # 外环 – 内环
    def integrand(u, v):
    Su, Sv = surface.d1(u, v)
    E = Su.dot(Su); F = Su.dot(Sv); G = Sv.dot(Sv)
    return sqrt(E*G – F*F)
    return gaussIntegrate(integrand, D)

    13.6.6 面到点距离

    function faceToPointDistance(face, p):
    surface = BRep_Tool.Surface(face)
    # 采样参数域找最近初值
    (u0, v0) = sampleClosest(surface, p, face)
    # 牛顿迭代优化 min |S(u,v) – p|
    (u, v) = newtonMinimize(lambda u,v: (surface.value(u,v) – p).lengthSquared(), u0, v0)
    return (surface.value(u, v) – p).length()

    13.6.7 布尔切分面

    function splitFace(face, interCurves):
    # interCurves 是求交产生的交线
    newEdges = [makeEdge(c) for c in interCurves]
    # 用 mef 加边把面切分为片段
    fragments = [face]
    for e in newEdges:
    newFragments = []
    for f in fragments:
    split = mef(f, e) # 加边分裂面
    newFragments.extend(split)
    fragments = newFragments
    return fragments


    13.7 主流软件实现对比

    内核面表示查询 API曲面类型修复
    OCCT TopoDS_Face + BRep_TFace + Geom_Surface BRep_Tool::Surface/Tolerance;BRepAdaptor_Surface 求值求导 Geom_Plane/CylindricalSurface/BSplineSurface 等 ShapeFix_Face
    Parasolid FACE 实体带曲面与环,状态机管理 PK_FACE_ask 查询 解析 + NURBS 内置修复
    CGM 容差面,容差建模贯穿 — 解析 + NURBS 容差驱动
    ACIS FACE 带 surface 与 loop,辐射边层 — 解析 + NURBS —
    Granite 面嵌入特征历史 — 解析 + NURBS —

    各实现都把面作曲面 + 环 + 容差 + 方向,差异在曲面类型与容差。


    13.8 操作步骤教程

    用 FreeCAD(OCCT)体验面。

    步骤一:查看面

    import Part
    box = Part.makeBox(10,10,10)
    for f in box.Faces:
    print(f.Area, f.CenterOfMass, f.normalAt(0,0))
    print("Surface:", f.Surface)
    print("Wires:", len(f.Wires))

    步骤二:查询曲面类型

    f = box.Faces[0]
    print(type(f.Surface)) # Geom_Plane
    # 圆柱面
    cyl = Part.makeCylinder(5, 10)
    print(type(cyl.Faces[0].Surface)) # Geom_CylindricalSurface

    步骤三:面上求值与法向

    f = box.Faces[0]
    # 在参数 (u,v) 求值
    p = f.valueAt(0.5, 0.5) # 参数域中点
    n = f.normalAt(0.5, 0.5) # 法向
    print(p, n)

    步骤四:点在面内

    f = box.Faces[0]
    p = Base.Vector(5, 5, 0) # 面上一点
    print(f.isInside(p)) # True

    步骤五:带孔面查看内环

    # 在面上打孔后
    f = holed.Faces[0]
    print(len(f.Wires)) # 外环 + 内环

    步骤六:面面积与曲率

    f = cyl.Faces[0] # 圆柱面
    print(f.Area) # 2πrh
    # 曲率(圆柱面高斯曲率 0,主曲率 1/r, 0)

    步骤七:体验修剪曲面

    创建一个 NURBS 曲面,用环修剪,查看参数域 DDD。


    13.9 应用场景与案例

    场景面的角色
    体素创建 立方体 6 平面面、圆柱 1 圆柱面 + 2 平面面等
    布尔运算 求交产生新边,新边切分面为片段,按运算类型选片段组成新面
    渲染 面离散成三角网格送 GPU;面法向用于着色
    网格化 FEA 网格器离散面成三角网格,沿环边保证节点匹配
    质量计算 面面积用积分,体体积用散度定理逐面积分
    工程图 面投影到平面,HLR 消除隐藏面边
    特征识别 平面面、圆柱面、自由曲面面识别支持特征识别与直接建模
    直接建模 移动面、替换面、删除面等直接编辑操作面
    数据交换 STEP 把面序列化为 ADVANCED_FACE(曲面 + 环)

    13.9.1 散度定理的体积计算

    设体 VVV 边界为面集 {Fi}\\{F_i\\}{Fi​},则:

    Vol(V)=13∑i∬Fip⋅n dA
    \\text{Vol}(V) = \\frac{1}{3} \\sum_i \\iint_{F_i} \\mathbf{p} \\cdot \\mathbf{n} \\, dA
    Vol(V)=31​i∑​∬Fi​​p⋅ndA

    其中 p\\mathbf{p}p 为面上点位置,n\\mathbf{n}n 为面法向。


    13.10 常见问题与调优

    问题原因调优
    面自交 曲面自交导致布尔、网格化异常 ShapeFix_Face 检测修复;重建模
    面法向不一致 个别面 orientation 错导致渲染或布尔异常 ShapeFix_Face 修复法向;手动翻转
    面未闭合 环不闭合导致面边界有缺口 ShapeFix_Wire 修复环闭合
    参数域错误 外环 −-− 内环定义的 DDD 不对 ShapeFix_Face 修复参数域
    p-curve 不一致 p-curve 与 3D 曲线不匹配 ShapeFix_Edge 重算 p-curve
    曲面退化 曲面在某处退化(如 NURBS 边界) ShapeUpgrade 修复退化
    面到边距离超容差 边未贴合面 调容差;ShapeFix 修复

    13.11 发展趋势与展望

  • T 样条面:T-splines 支持局部细化,可能并入面几何支撑;
  • 容差面深化:容差建模普及,面容差更自适应;
  • 面修复自动化:ShapeFix 自动检测与修复面自交、退化、错向;
  • 面在直接建模:直接编辑面(移动、替换、删除)更智能;
  • 并行面处理:面独立可并行求值、积分、网格化,GPU 加速;
  • 可微面:可微曲面支持可微几何与生成式设计。

  • 13.12 小结

    面是 B-Rep 拓扑层次的二维实体,关联曲面(几何支撑)+ 外环 + 内环 + 方向 + 容差。面参数域 DDD 由外环 −-− 内环定义,面是 S(D)S(D)S(D)。面法向由 orientation 与曲面自然法向决定。面支持求值、求导、曲率、面积、点分类。面在布尔中被切分,在渲染、网格化、质量计算、工程图中核心。面带容差用于贴合判定,p-curve 支持面上操作。面自交、退化、错向需 ShapeFix 修复。各内核都把面作曲面 + 环 + 容差,差异在曲面类型与容差。理解面是理解 B-Rep 几何表达的核心,为第 14 章壳与体铺垫。

    13.12.1 关键公式速查

    量公式
    面参数化 F=S(D)F = S(D)F=S(D),D=Douter∖⋃DinnerD = D_{\\text{outer}} \\setminus \\bigcup D_{\\text{inner}}D=Douter​∖⋃Dinner​
    面法向 n=orientation×Su×Sv∣Su×Sv∣\\mathbf{n} = \\text{orientation} \\times \\dfrac{S_u \\times S_v}{|S_u \\times S_v|}n=orientation×∣Su​×Sv​∣Su​×Sv​​
    第一基本形式 E=Su⋅SuE = S_u \\cdot S_uE=Su​⋅Su​,F=Su⋅SvF = S_u \\cdot S_vF=Su​⋅Sv​,G=Sv⋅SvG = S_v \\cdot S_vG=Sv​⋅Sv​
    面积元素 dA=EG−F2 du dvdA = \\sqrt{EG – F^2} \\, du \\, dvdA=EG−F2​dudv
    第二基本形式 L=n⋅SuuL = \\mathbf{n} \\cdot S_{uu}L=n⋅Suu​,M=n⋅SuvM = \\mathbf{n} \\cdot S_{uv}M=n⋅Suv​,N=n⋅SvvN = \\mathbf{n} \\cdot S_{vv}N=n⋅Svv​
    高斯曲率 K=LN−M2EG−F2K = \\dfrac{LN – M^2}{EG – F^2}K=EG−F2LN−M2​
    平均曲率 H=EN−2FM+GL2(EG−F2)H = \\dfrac{EN – 2FM + GL}{2(EG – F^2)}H=2(EG−F2)EN−2FM+GL​
    主曲率 k1,2=H±H2−Kk_{1,2} = H \\pm \\sqrt{H^2 – K}k1,2​=H±H2−K​
    面积 A=∬DEG−F2 du dvA = \\iint_D \\sqrt{EG – F^2} \\, du \\, dvA=∬D​EG−F2​dudv
    面到点距离 d=min⁡(u,v)∈D∣S(u,v)−p∣d = \\min_{(u,v) \\in D} |S(u,v) – \\mathbf{p}|d=min(u,v)∈D​∣S(u,v)−p∣
    p-curve (u(t),v(t))=S−1(C(t))(u(t), v(t)) = S^{-1}(C(t))(u(t),v(t))=S−1(C(t))
    欧拉公式 V−E+F−L=2(S−G)V – E + F – L = 2(S – G)V−E+F−L=2(S−G)

    13.13 延伸阅读

  • OpenCASCADE TopoDS_Face、BRep_Tool、BRepAdaptor_Surface、Geom_Surface 文档;
  • Piegl L, Tiller W. The NURBS Book[M]. 2nd ed. Springer, 1997.(曲面求值求导曲率)
  • do Carmo M P. Differential Geometry of Curves and Surfaces[M]. Prentice-Hall, 1976.(第一第二基本形式)
  • ACIS FACE 文档;
  • 本报告第 12 章环、第 14 章壳与体、第 24–25 章 NURBS 曲面与修剪曲面。

  • 参考文献

    [1] Open CASCADE Technology Documentation: TopoDS_Face, BRep_Tool, BRepAdaptor_Surface, Geom_Surface, OCCT 8.0, 2024.
    [2] Piegl L, Tiller W. The NURBS Book[M]. 2nd ed. Springer, 1997.
    [3] do Carmo M P. Differential Geometry of Curves and Surfaces[M]. Prentice-Hall, 1976.
    [4] Requicha A A G. Representations for Rigid Solids: Theory, Methods, and Systems[J]. ACM Computing Surveys, 1980, 12(4): 437-464.
    [5] Mäntylä M. An Introduction to Solid Modeling[M]. Computer Science Press, 1988.(B-Rep 拓扑层次)

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 三维CAD关键技术探讨(十三)——拓扑实体面
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!