我有一个沿着开放路径移动的形状,我想知道如何得到它的相对位置,即给定形状的(x,y)坐标和路径的长度(L)(p) ,该函数应返回该点所在的比率(r)。
例如,r = 0表示该点位于路径的最开头,0.25表示四分之一,0.5表示等等。
我能做到的一种方法是迭代函数p.getPointAtLength()不同的长度增量,直到给定的位置在我原始点(x,y)的可接受范围内。然后简单地将此值除以p.getTotalLength()。
但有没有一种更有效,更精确的方法来知道在我的情况下路径是4点贝塞尔曲线?
答案 0 :(得分:0)
简答:不。
重新参数化Bezier曲线的距离而非时间,这是一个非常重要的问题,没有一般的解决方案,所以到目前为止,“沿着计算机屏幕上的路径移动”的最有效方法是LUT-基于http://pomax.github.io/bezierinfo/#tracing
的方法答案 1 :(得分:0)
对于那些可能感兴趣的人,以下是我的工作方式:
%APPDATA%\tox