你有种再说一遍 发表于 3 天前

曲线曲面

本帖最后由 你有种再说一遍 于 2025-5-12 19:42 编辑

1,Bezier贝塞尔曲线的多段拼接连续性只有G1和全局影响过大.
2,所以诞生均匀B样条曲线,但是转角突变性不够灵活.(实际上它出生更早,只是保密了)
3,又有了非均匀有理B样条(NURBS)它每个点都有权重(pt,weight)以及加入了一个数组表达非均匀节点向量knots
4,有了B样条之后,
人们发现多条曲线组成网格就是曲面,
叫做双三次B样条曲面.
双三次B样条曲面使用分段多项式基函数,居然它的曲面更细腻.(汽车,飞机建模使用)

5,还有一种曲面叫双三次Bezier贝塞尔曲面,使用Bernstein基函数.(数学表达简洁.)
通过贝塞尔公式可以看见: 控制点*基函数=>拟合点.
一维贝塞尔曲线: 二维控制点* x基函数
二维贝塞尔曲线: 三维控制点* x基函数 * y基函数.
二维贝塞尔曲线就是曲面,这种叫张量积曲面.
你甚至可以推广到三维,四维...这种已经没有物理意义的地方.

6,还有一种曲面是Coons双三次样条曲面
https://www.cnblogs.com/begtostu ... /11/02/2232657.html

### **曲面构造方法对比表**

| **特性**          | **Coons曲面**               | **B样条曲面**               | **Bezier曲面**             |
|-------------------|----------------------------|----------------------------|----------------------------|
| **数学基础**       | 双三次样条插值             | 张量积B样条基函数          | 张量积Bernstein基函数      |
| **连续性**      | $C^2$(角点信息矩阵保证)   | $C^2$(节点重复度≤2)      | $C^1$(多片拼接困难)      |
| **控制方式**      | 依赖四条边界曲线         | 控制网格逼近               | 控制多边形逼近             |
| **局部控制**      | ❌ 修改边界影响整片曲面   | ✅ 支持局部修改控制点       | ❌ 全局修改                |
| **参数化要求**    | 需指定角点切矢与扭矢       | 需定义节点向量             | 仅需控制点坐标             |
| **计算复杂度**    | 高(需解三对角方程组)   | 中(基函数递归计算)       | 低(直接多项式计算)       |
| **典型应用**      | 飞机翼面、船舶外形         | 汽车车身、高精度工业模型   | 简单产品外观、LOGO设计   |

#### **关键差异说明**
1. **连续性**
   - Coons曲面通过角点信息矩阵(含二阶偏导)强制实现$C^2$连续
   - B样条曲面的连续性由节点向量重复度控制(如三重节点达$C^0$)

2. **局部控制**
   - B样条曲面的基函数局部支撑性使其可独立调整部分控制点
   - Bezier和Coons曲面的全局性导致"牵一发而动全身"

3. **工业适用性**
   - **B样条/NURBS**:占CAD市场90%以上(CATIA、SolidWorks)
   - **Coons曲面**:适用于边界驱动的工程场景(如流体力学网格生成)
   - **Bezier曲面**:逐渐被B样条取代,但在字体设计中仍有应用

7,曲线曲面历史
http://www.whudj.cn/?p=450

8,现在Autodesk采取T-Splines,是混合了多种.
但是没有开源,但是网上有很多论文和知乎介绍原理.

9,曲面的参数化表示居然会上升到保角变换等高深的知识.甚至还是作为人脸识别的AI算法.

weizcw2008 发表于 3 天前

guosheyang 发表于 3 天前

老大能举个例子不 比如建个9个控制点的简单样条曲面 如何用代码表示呢?
页: [1]
查看完整版本: 曲线曲面