贝塞尔曲线(路径) - 到T

问题描述:

严格的事实遍历时更少恒速:贝塞尔曲线(路径) - 到T

  • 可惜我不是一个数学大师
  • 我用我的手指画它产生贝塞尔路径屏幕
  • 我有遵循此路径
  • 当引擎调用我遍历该路径上的物体在物体上(浮动fDelta)以这种方式:

如果(m_fBezierTime < 1.0) {

m_fBezierTime + = 0.1F * fDelta;

m_vPosition = m_Bezier.CalculatePosition(m_fBezierTime);

}

  • 这种方法给出了比那些接近彼此距离高点之间的“巨大”的加速度。

  • 我听说这是贝塞尔

正常行为现在的问题是:

  • 我怎样才能使这个速度至少是“接近”或“〜”以不变?

感谢您对此的任何评论。

简单而快速的解决方案:像您现在正在做的那样,在Bezier曲线上获得一组规则分布的点(例如每个曲线10个点)并测量这些点之间的欧几里得距离(意思是:sqrt((x_1 - x_2 )²+(y_1 - y_2)2 ...))。这应该是完整曲线长度的一个很好的衡量标准,您可以使用该曲线而不是以几乎恒定的速度进行移动。

还有更多漂亮的东西在这里:http://steve.hollasch.net/cgindex/curves/cbezarclen.html 但这可能是矫枉过正。

+0

完美,就像一个魅力。 – PeeS 2012-01-05 16:07:39