当前位置: 首页 > news >正文

几何引擎:设计原则、关键组件

本文以笔记的形式,记录笔者几何引擎开发的心得。

注1:限于研究水平,分析难免不当,欢迎批评指正。

注2:文章内容会不定期更新。


壹、微分几何

一、 基础

1.1 曲面的基本形式(Fundamental Forms of Surfaces

设曲面参数方程,曲面法线为,则有,

曲面的第一基本形式:

曲面的第二基本形式:

曲面的第三基本形式:;

其中,

为曲面第一基本量;

为曲面第二基本量;

为曲面第三基本量。

,则有

  • 曲线高斯曲率为
  • 曲线平均曲率为
  • 主曲率的最大值和最小值满足特征值方程
  • 第三基本形式可完全用第一基本形式与第二基本形式表示,即

1.2 仿射变换 (Affine Transformation)

给定非奇异矩阵,列向量,定义变换为仿射变换。

写成齐次形式,则有

从几何上看,仿射变换是在线性变换的基础之上加上一个平移变换。

仿射变换具有以下性质:

  • 共线点依旧共线,平行线依旧平行
  • 共线向量等比例缩放

1.3 Hausdorff距离

贰、计算几何

叁、CAGD

一、 基础

1.1 Bézier曲线

给定个控制点,Bézier曲线定义为,

其中,

为Bernstein多项式

Bézier曲线具有如下性质,

  • 曲线通过,起点切向方向与一致,重点切线方向与
  • Bézier曲线的一阶导数为
  • Bézier曲线落在控制点构成的凸包内

1.2 有理Bézier曲线

给定个控制点,有理Bézier曲线定义为,

其中,

为Bernstein多项式为权函数。

1.3 B样条曲线(B-SplineCurve)

给定个控制点个非递减节点构成节点向量(knot vector),则B样条曲线定义为,

其中,

次的 B 样条基函数,可由下面递推公式得到,

B样条曲线具有以下性质,

  • 局部性:改变一个控制点只会影响曲线的局部形状;
  • 连续性:B样条曲线具有连续性,其中是knot向量中重复次数;
  • 凸包性:B样条曲线始终位于其控制点所构成的凸包内。

1.4 NURBS曲面(Non-Uniform Rational B-Splines)

给定个控制点,NURBS曲线定义为,

给定个控制点,NURBS曲面定义为

其中,

方向的次B样条基函数;

方向的次B样条基函数;

为权重因子。

NURBS曲面具有以下性质,

  • 局部性:改变一个控制点只影响曲面的局部形状;
  • 连续性:沿方向在重复度为节点处具有连续;沿方向在重复度为节点处具有连续;
  • 凸包性:NURBS曲面始终位于其控制点所构成的凸包内;
  • 精确性:可以精确表示任何曲面;
  • 可调性:通过调整控制点的位置和权重因子,可以修改曲线形状,同时不破坏曲面连续性;

肆、计算机图形学

伍、CAD

计算机辅助设计(Computer Aided Design, CAD)是指利用计算机及设备帮助设计人员进行设计工作。而数据管理、几何引擎、约束求解器、渲染、用户交互则是整个CAD软件最为重要的技术底座。

CAD引擎最为核心的功能其实主要有两个:第一个是几何、拓扑等信息的表示问题,也就是在计算机中如何表示物理世界中的实体;第二个是如何生成模型的问题,也就是采用合适的算法生成对应的模型表示。

CAD软件主要功能模块

一、曲线曲面造型

薄壳在飞机、船舶、汽车等设计中有着广泛的工程应用,因此,高质量的曲线曲面造型技术具有极其重要的工程价值。

CategoryDescription
Regular
FreeBezier

non-rational

rational

B-Splinenon-rational

rational, NURBS

T-Spline
Implicit
Subdivision
Coons
Offset
Random

二、实体造型

2.1 CSG (Constructive Solid Geometry)

2.2 B-Rep (Boundary Representation)

三、特征造型

陆、软件开发

一、架构设计

1.1 研究素材

1.1.1 商用软件
供应商产品特点
法国达索
德国西门子
美国Autodesk
1.1.2 开源软件
研发机构代码特点
OpenCASCADE
FreeCAD
QCAD
SALOME

1.2 技术/非技术约束、设计原则

1.3 主要模块

Data Exchange
IGES(Initial GraphicsExchange Specification)
STEP(STandard for the Exchange of Product model data)

书籍

  • Kang Lan. CAD/CAM Principles and Applications. China Machine Press, 2016.
  • Hoffmann C M. Geometric and Solid Modeling[J]. Morgan Kaufmann, 1989.
  • Michael E. Mortenson. Geometric Modeling. John Wiley & Sons, 1997.
  • Gerald Farin, Dianne Hansford. The Essentials of CAGD. A K Peters/CRC Press, 2000.
  • Mäntylä, Martti. An introduction to solid modeling[J].British Journal of Educational Technology, 1988, 8(3):165–175.
  • Shah J J , Mantyla M . Parametric and feature-based CAD/CAM: concepts, techniques, and applications[M]. 1995.
  • Joan-Arinyo R , Soto A ,Sabastià Vila. Geometric Constraint Solving[J].Inteligencia Artificial, 1995, 7(20).
  • 孙家广. 计算机辅助设计技术基础. 清华大学出版社, 2005.
  • 孙家广. 计算机辅助几何造型技术. 清华大学出版社,1990
  • 梅向明. 微分几何. 高等教育出版社, 2019.
  • Mark de Berg. Computational Geometry: algorithms and applications (3rd Edition).
  • 汪嘉业. 计算几何及应用. 科学出版社, 2011.
  • 周培德. 计算几何: 算法设计与分析. 清华大学出版社, 2008.
  • 王国瑾. 计算机辅助几何设计. 高等教育出版社, 2001.
  • 寿华好. 计算机辅助几何设计导论. 科学出版社, 2023.
  • 施法中. 计算机辅助几何设计与非均匀有理B样条. 高等教育出版社, 2013.
  • 莫蓉. 计算机辅助几何造型技术(第二版). 科学出版社, 2009.
  • 万能. 计算机辅助几何造型技术(第四版). 科学出版社, 2020.
  • Hearn D. Computer graphics.
  • 曹岩. CAD基础理论及应用. 西安交通大学出版社, 2011.
  • 杜平安. CAD/CAE/CAM方法与技术. 清华大学出版社, 2010.
  • 詹海生. 基于ACIS的几何造型技术与系统开发[M].清华大学出版社,2002.

文献


网络

OpenCASCADE

http://www.jsqmd.com/news/499890/

相关文章:

  • 如何高效阅读Influential-cs-books项目中的技术书籍:7个实用技巧与阅读策略
  • 揭秘freeCodeCamp的高效依赖管理:pnpm workspace+monorepo架构的多包管理终极指南
  • 2026古建青砖青瓦优质厂家推荐榜专业可靠:仿古琉璃瓦厂家、仿古瓦厂家、仿古砖厂家、仿古青瓦厂家、仿古青砖厂家选择指南 - 优质品牌商家
  • freeCodeCamp路由系统深度解析:Gatsby页面生成与客户端路由的混合架构指南
  • 分享裕亨云医开源文档
  • 2026初创企业项目申报服务优质机构推荐榜:专利申请知识产权/专精特新项目申报/创小项目申报/创新型中小企业项目申报/选择指南 - 优质品牌商家
  • TypeScript-Node-Starter数据库操作:Mongoose模型设计与数据验证终极指南
  • 如何在freeCodeCamp中实现高效的React表单处理与验证:终极指南
  • 10个实用Material-UI性能优化技巧:从懒加载到渲染优化的完整指南
  • 从崩溃到秒级定位:AriaNg生产环境调试工具的安全与功能平衡指南
  • BetterNCM安全实践:插件权限管理与用户数据保护指南
  • Influential-cs-books项目中的测试驱动开发与重构书籍:构建高质量代码的实践指南
  • 终极指南:Captura定时录制与依赖管理完全解析
  • 终极指南:freeCodeCamp身份验证系统深度解析 - JWT令牌与OAuth2.0的多提供商登录集成
  • Storybook新范式:构建坚不可摧UI组件的完整指南
  • 如何扩展 Floating Action Button 库:自定义按钮样式与行为的高级教程
  • Storybook插件开发终极指南:从零构建自定义扩展功能
  • Recharts终极性能监控指南:10个Lighthouse优化技巧让你的图表快如闪电
  • E2B Desktop Sandbox核心功能详解:鼠标、键盘与屏幕控制实战教程
  • 如何扩展Android Floating Action Button:自定义动画与交互的高级技巧
  • Three.js 模糊反射效果终极指南:打造真实光影世界的10个技巧
  • 终极Storybook构建优化指南:Webpack与Vite配置全解析
  • 深入解析Blender-to-Unity-FBX-Exporter核心原理:X+90度旋转的巧妙设计
  • 【智能体系统AgentOS】核心12:如何创建一家公司
  • 终极指南:Storybook状态管理与Redux、Zustand无缝集成方案
  • 企业级Ralph部署方案:安全、监控与团队协作的终极指南
  • 深入理解instagram-web-api:揭秘Instagram私有API的工作原理
  • 终极指南:Storybook与TypeScript深度集成,构建类型安全的UI组件
  • SDE-Interview-Questions面试策略:如何利用题库制定个性化面试准备计划
  • PE Tools历史版本回顾:从2002年到2018年的发展历程