几何:1.介绍
MVC.Model-View-Controller
OCC提供了一系列类,用户可以“按原样”应用或通过添加自定义类来扩展。
这些提供某些概念(例如几何实体)的类通常按实现进行分组:模型层、视图层和控制器层。每层都在相应的包中实现,而包又包含类和函数。
MVC.Example
示例——二维圆的概念。
模型:包含圆心和半径的数据对象。(标准的直接构造函数:默认构造函数、带有点和半径的构造函数等。)
控制器:构建一个经过 3 个点的圆。构建一个以圆心且与直线相切的圆。(注意:每个控制器类都有一个返回抽象数据对象的方法。)
视图:可以在查看器中显示的对象。
MVC.Discussion
优点:
- 模型是持久的,可以在不更改模型类的情况下添加新的控制类。
- 模型是最小的,如果需要可以在程序执行期间创建控制器类的实例。
缺点:
有时,很难找到解决特定问题的类。
MVC.Implementation of controller classes
OCC中针对几何和拓扑对象实现的各种控制器类包括:
- 直接构造(gce_MakeCircle、gce_MakeLin2d);
- 通过二维约束构建 (GccAna_Circ2d2TanRad);
- 复杂的构造算法:插值近似、投影(GeomAPI package)。
几何:2.概述
非参数和参数几何
非参数几何:这些类型由值操纵;这些类没有继承。
参数化几何:Geom (Geom2d) 中的实体由 Handle操作(对于数据共享很有用),而控制器类则由值操作。类的层次结构通常遵循 STEP (ISO 10303) 标准。提供从Geom到gp转换的方法。
非参数几何
模型类(二维类通过添加“2d”后缀,gp_Pnt2d):
- gp_Pnt——笛卡尔点;
- gp_Vec——向量;
- gp_Dir ——方向(非空向量,模长大小等于 1.0);
- gp_Trsf——欧几里得变换。可以独立设置平移、旋转和缩放;
- gp_Ax1——轴,轴是点加方向;
- gp_Lin、gp_Circ、gp_Elips、gp_Hypr、gp_Parab、gp_Cylinder、gp_Sphere、gp_Torus 表示曲线和曲面的图元。
控制器类: - 直接构建 - gce_MakeCircle、gce_MakeLin;
- 约束构造(仅限 2d)- GocAna_Circ2d2TanRad。
非参数几何的限制
非参数几何提供了有用的集合类,但它们存在一些原则限制:
- 无法回答典型的几何问题:
- 此时的曲率值是多少?
- 此时曲线的切向量是多少?
- 曲线和给定点之间的最小欧几里德距离是多少?
- 这些对象相交吗?
- 有些对象是无限的,并且没有办法让它们变得有限:
- 直线、双曲线、抛物线
- 平面、圆柱
- 不能表示自由形式和非平凡的对象:
- 如何表示飞机机身? (贝塞尔曲线和 B 样条曲线);
- 如何表示偏置曲面? (需要法向);
- 如何表示扫掠曲面? (线性挤压

最低0.47元/天 解锁文章
2878

被折叠的 条评论
为什么被折叠?



