在C++中,我如何计算所有可能的贝塞尔控制点,以使曲线达到给定的长度

In C++ how can I calculate all possible Bezier handle points in order to make the curve to a given length?

本文关键字:曲线 控制 C++ 计算所 有可能      更新时间:2023-10-16

在C++中,给定一条Quad Bezier曲线的两个锚点和一个控制点,我如何计算另一个控制点将曲线长度设为固定值?

它将是什么样的轨道?

我正在做一个CAD软件。当光标在它附近移动时,我需要让光标"捕捉到"可能的点。所以我需要计算轨道,而不是简单地检查长度。

二次贝塞尔曲线P1P2P3的长度受折线P1P2P3长度的限制,即

||P3 - P2|| + ||P2 - P1|| = const

由于P1和P3是固定的,因此,P2位于以P1和P3为焦点的椭圆上。