贝塞尔曲线(路径) - 到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 但这可能是矫枉过正。
完美,就像一个魅力。 – PeeS 2012-01-05 16:07:39