OpenCASCADE - 曲线自交
OpenCASCADE - 曲线自交
1 Introduction
OpenCASCADE为二维曲线提供了求交及自交的类 Geom2dAPI_InterCurveCurve:当传入一个二维几何曲线时可以计算自交self-intersections。但是没有提供直接的三维几何曲线求交的类,也没有直接的计算自交的类。有人同学问OpenCASCADE有没有三维曲线自交的功能,其实理解两个Edge求交算法后,可以自己实现一个自交函数。
2 Self-Intersection
因为OpenCASCADE中两条三维曲线求交的类是IntTools_EdgeEdge,其实现原理是基于包围盒的分割法。基于这个分割递归思想,实现自交也可以参考这个思路。算法的流程为:输入一条要计算自交的边Edge,对边进行离散采样,将采样得到的每段曲线的包围盒生成BVH进行相交检测,将BVH中包围盒相交的两条曲线调用IntTools_EdgeEdge来计算相交。
离散得到的曲线段会比较多,如果用两个循环来检测两两曲线段的相交情况性能差,可以引入BVH提高性能。
3 Test
可以通过插值Interpolate来构造曲线测试,指定几个自交点来构造插值曲线。计算结果如下图所示:
与曲线求交原理类似,都是使用离散的方法,可以思考一下数值算法如何处理。
为了方便大家在移动端也能看到我的博文和讨论交流,现已注册微信公众号,欢迎大家扫描下方二维码关注。

标签:
OpenCascade
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2015-11-15 OPEN CASCADE Curve Continuity