是否有任何算法可以使用有限数量的线段和圆弧(恒定曲率)来逼近 xy 平面(即由 x 和 y 定义的有序点集)上的路径?结果曲线需要是 C1(斜率的连续性)。
最大数量或线段和弧线可以是一个参数。另一个有趣的约束是防止两个连续的圆弧没有中间线段连接它们。
我看不出有任何方法可以做到这一点,我认为不存在针对它的方法,但欢迎对此目标的任何暗示。
例子:
考虑这条路。它看起来像一条线,但实际上是一组非常接近的点的有序套件。没有噪音,点序列的顺序是众所周知的。
我想用最少连续的线段和圆弧(假设 10 个线段和 10 个圆弧)和 C1 连续性来近似这条曲线。段/弧的数量本身不是一个目标,但我需要任何参数来减少/增加这个数量,以达到一定的参数化简单性,但代价是精度损失。
解决方案:
这是我的解决方案,基于 Spektre 的回答。红色曲线为原始数据。黑线是线段,蓝色曲线是圆弧。绿色十字是显示半径的圆弧中心,蓝色十字是线段可能连接的点。
我在 C++ 中有一个 openmp 并行循环,其中所有线程都访问一个共享的 double 数组。
我是否需要原子写入来确保读取的数据有效(旧的或更新的),或者仅当多个线程尝试在同一位置写入时才需要原子写入?
它似乎可以在有或没有原子写入的情况下工作,但如果没有原子写入,当然速度更快。