Files
ViewDesignEngine/docs/01-需求分析/02-需求规格说明书.md
T

5.1 KiB
Raw Blame History

需求规格说明书

目录

  1. 引言
  2. 功能需求
  3. 非功能需求

1. 引言

1.1 目的

本文档定义 ViewDesignEngine 几何算法引擎的功能需求与非功能需求,作为后续设计、实现与测试的基线。

1.2 范围

本引擎提供底层几何计算能力,覆盖二维和三维空间的基础几何运算、曲线曲面建模、网格处理、布尔运算、空间索引和碰撞检测。

1.3 术语定义

术语 定义
CSG 构造实体几何(Constructive Solid Geometry
NURBS 非均匀有理 B 样条(Non-Uniform Rational B-Spline
BVH 包围体层次结构(Bounding Volume Hierarchy
GJK Gilbert-Johnson-Keerthi 碰撞检测算法
Delaunay Delaunay 三角剖分
B-Rep 边界表示法(Boundary Representation
QEM 二次误差度量(Quadric Error Metrics

2. 功能需求

FR-01:基本几何类型

编号 需求 优先级
FR-01.1 Point2D / Point3D:二维/三维点,支持算术运算 P0
FR-01.2 Vector2D / Vector3D:向量运算(加减、点积、叉积、归一化) P0
FR-01.3 Line2D / Line3D / Ray / Segment:直线、射线、线段 P0
FR-01.4 Plane:平面定义与运算 P0
FR-01.5 Triangle / Polygon:三角形与多边形(法向量、面积、点包含判断) P0
FR-01.6 BoundingBox:轴对齐包围盒(AABB)与定向包围盒(OBB) P0

FR-02:几何变换

编号 需求 优先级
FR-02.1 平移、旋转、缩放 P0
FR-02.2 变换矩阵(4×4 齐次坐标) P0
FR-02.3 组合变换(变换链) P1
FR-02.4 反射、剪切、投影 P2

FR-03:曲线建模

编号 需求 优先级
FR-03.1 Bezier 曲线(任意阶) P0
FR-03.2 B-Spline 曲线 P0
FR-03.3 NURBS 曲线 P0
FR-03.4 曲线求值(de Casteljau / Cox-de Boor 算法) P0
FR-03.5 曲线求导(一阶/二阶导数) P1
FR-03.6 曲线分割与拼接 P1
FR-03.7 弧长参数化 P2

FR-04:曲面建模

编号 需求 优先级
FR-04.1 Bezier 曲面 P1
FR-04.2 B-Spline 曲面 P1
FR-04.3 NURBS 曲面 P1
FR-04.4 曲面求值与求导 P1
FR-04.5 曲面离散化(三角网格化) P1

FR-05:网格处理

编号 需求 优先级
FR-05.1 半边数据结构(Half-Edge P0
FR-05.2 Delaunay 三角剖分(2D P0
FR-05.3 约束 Delaunay 三角剖分(2D P2
FR-05.4 网格简化(QEM 算法) P1
FR-05.5 网格平滑(Laplacian / Taubin P1
FR-05.6 网格布尔运算(并、交、差) P1
FR-05.7 网格质量评估 P1
FR-05.8 网格修复(孔洞填充、非流形修复) P2

FR-06:布尔运算(CSG

编号 需求 优先级
FR-06.1 二维多边形布尔运算(并、交、差、异或) P0
FR-06.2 三维网格布尔运算 P1
FR-06.3 B-Rep 实体布尔运算 P2

FR-07:空间索引

编号 需求 优先级
FR-07.1 包围体层次结构(BVH P0
FR-07.2 八叉树(Octree P1
FR-07.3 KD-Tree P1
FR-07.4 R-Tree P2

FR-08:碰撞检测

编号 需求 优先级
FR-08.1 GJK 算法(凸体距离/碰撞检测) P0
FR-08.2 SAT 分离轴定理(多面体) P1
FR-08.3 射线-三角形相交(Möller-Trumbore P0
FR-08.4 三角形-三角形相交 P1
FR-08.5 AABB / OBB 相交测试 P1

FR-09:几何计算

编号 需求 优先级
FR-09.1 距离计算(点-点、点-线、点-面、线-线) P0
FR-09.2 面积计算(多边形、曲面) P1
FR-09.3 最近点查询 P1
FR-09.4 凸包计算(2D / 3D P0

FR-10:公差与精度

编号 需求 优先级
FR-10.1 可配置的几何公差 P0
FR-10.2 自适应精度策略 P1
FR-10.3 鲁棒的浮点谓词(Shewchuk 自适应精度) P1

3. 非功能需求

NFR-01:性能

指标 输入规模 目标
布尔运算 百万面级网格 ≤ 30 秒
最近点查询 10 万三角面(BVH ≤ 1 毫秒
Delaunay 剖分 百万点 ≤ 10 秒

NFR-02:可靠性

  • 核心算法单元测试覆盖率 ≥ 90%
  • 回归测试套件覆盖所有公开 API
  • 边界条件与退化情况的鲁棒处理

NFR-03:可移植性

  • 支持 LinuxGCC 9+ / Clang 12+
  • 支持 WindowsMSVC 2019+
  • 支持 macOSClang 12+

NFR-04:可扩展性

  • 模块化架构,各模块独立编译
  • 清晰的接口抽象层,支持算法替换
  • 插件式空间索引后端

NFR-05:可用性

  • 完善的 API 文档(Doxygen
  • 丰富的示例代码
  • 入门指南与教程