我需要调整(三次)贝塞尔曲线的长度以匹配另一条曲线的长度,而又不影响其整体形状。我猜想,这涉及递归地按比例缩放它,直到长度达到正确的大小(或者有没有更好的方法?)。
我有计算长度的函数。对于缩放,我一直在计算新控制点的坐标。有this question 似乎有答案,但我无法弄清楚答案中的变量a,b等是什么。另外,我需要从头开始编写一个函数,而不必求助于任何API库(python数学除外)。
感谢您的帮助。
答案 0 :(得分:3)
用 L 表示曲线的长度和所需的 D 长度,在我看来,您只需要缩放曲线(D / L )-次。多亏affine invariance,足以扩展您的所有控制点。也就是说,将每个控制点的每个坐标乘以 D / L 。
还是我错过了什么?