高效使用曲线和曲面评估器的技巧
要从曲线和曲面赋值器中获得最大效率,在同一曲线或曲面上执行多个赋值时,应尽可能多地重用 、 和对象。例如,假设 和 都在同一表面上执行求值并调用 。然后,用于计算的对象应传递给:AcGePointOnCurve2dAcGePointOnCurve3dAcGePointOnSurfacefunc1func2srffunc1func2AcGePointOnSurfacefunc1func2 void func1 (const AcGeSurface& srf) { AcGePointOnSurface pntOnSrf (srf); . . // Evaluate some points and derivatives. . func2 ( pntOnSrf ); . . . } void func2 (AcGePointOnSurface& pntOnSrf) { // Evaluate some points and derivatives using pntOnSrf // passed in from func1. } 通过传递给 ,赋值器可以继续使用用于 中所有求值的相同数据区域。如果未将对象传递给 ,则必须声明一个新对象,该对象将创建一个新的数据区域并重新计算在 中计算的数据。以下代码正确执行;但是,它的效率不如前面的代码:pntOnSrffunc2func1func1AcGePointOnSurfacefunc2func2AcGePointOnSurfacefunc1 void func1 (const AcGeSurface& srf) { AcGePointOnSurface pntOnSrf (srf); ... func2 (srf); ... } void func2 (const AcGeSurface& srf) { AcGePointOnSurface pntOnSrf (srf); . . // Evaluate some points and derivatives, using new // pntOnSrf declared above. . } 对于评估器密集型应用(如曲面扇间或有限元网格生成器),重复使用同一对象非常重要。在曲面-曲面扇区间的情况下,顶级函数应声明两个对象(每个曲面一个),并将这些对象传递到所有较低级别的例程中。通过这种方式,应用程序可以最大限度地利用在评估之间保存的数据,并从其表面评估器中获得最大效率。AcGePointOnSurfaceAcGePointOnSurface 为了获得 、 和 类的最佳用法,对于同一曲线或曲面,不应同时在作用域内同时出现大量这些对象。在大多数情况下,这些对象中只有一个应位于特定曲线或曲面的范围内。AcGePointOnCurve2dAcGePointOnCurve3dAcGePointOnSurface 父主题: |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-5-13 11:23
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.