一种立方贝塞尔长度分析解决方案
似乎不存在,但并不意味着
编码便宜的解决方案不存在.我的意思是在50-100 ns(或更少)的范围内.
似乎不存在,但并不意味着
编码便宜的解决方案不存在.我的意思是在50-100 ns(或更少)的范围内.
有人知道这样吗?也许分为两类:
1)较少的错误,如1%,但更慢的代码.
2)更多错误如20%但更快?
我扫描谷歌有点,但它没有
找到任何看起来像一个很好的解决方案.只有N个细分的细分
并且总和N sqrt – 太慢以获得更高的精度,
并且对于2或3段可能太不准确.
有更好的吗?
解决方法
另一个选择是将弧长估计为和弦和控制网之间的平均值.在实践中:
Bezier bezier = Bezier (p0,p1,p2,p3); chord = (p3-p0).Length; cont_net = (p0 - p1).Length + (p2 - p1).Length + (p3 - p2).Length; app_arc_length = (cont_net + chord) / 2;
然后,您可以将样条曲线段递归分割成两段,并计算弧长达到收敛.我测试了自己,实际上收敛得很快.我从forum获得了这个想法.