多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
![](https://img.kancloud.cn/9e/93/9e93b3ede8cd0d65bf2364a88c2fb653_1041x641.png =230x) ### **CPMesh(Circle Packing Mesh)** * * * * * :-: ![](https://img.kancloud.cn/dc/db/dcdb695e8b260a7aba429855e25abeb3_986x468.png =600x) **描述**: 优化三角形网格,尽可能地使各三角形网格以每个顶点为圆心,顶点到内切圆切点的距离为半径的圆相切(Circle Packing)。 CP Mesh(Circle Packing Mesh)最初是为了使建筑和设计中的自由曲面合理化(生成无扭曲节点)而开发的,如上图所示,它是一个三角形网格,绘制其内切圆可以形成一种Packing,以每个顶点为圆心,顶点到内切圆切点的距离为半径绘制球,这样就又得到了一个**球Packing**,以内切圆的中心轴线彼此相连又能够产生一种**六边形的无扭曲支撑结构(图中红色的六边形结构)**。为了计算优化CP Mesh,我们首先需要建立一个基于原始网格的优化问题。因此这里需要通过建立一个能量函数来实现的,它必须能够测量Circle Packing特性、优化网格到原始网格的距离以及优化网格的边界到原始网格边界的距离。换句话说,无论我们使用什么能量函数,总是会对原始网格产生偏差,**因此这个优化并不能对任意曲面有效,只能产生近似的Circle Packing。** **输入端**: * Mesh: 需要重构的网格模型。 * MaxIter: 优化的最大迭代步数。 * Fixed: 是否锚固开放网格边界。 **输出端**: * Mesh: 输出优化后的网格。 * Circles: 输出Circle Packing曲线。 * Radii:输出每个Circle的半径。 ![](https://img.kancloud.cn/65/de/65de2b0a739db62e6d74e9a2cfa11651_1749x677.png)