我想实现一个分配Bezier曲线。我试图通过给我的函数一个关键帧数组移动一个球(使用bezier曲线)。该功能应该给我关键帧之间的所有帧...或控制点...但尽管我使用wikipedia上找到的公式...它不是真的工作:s实现Bezier曲线
她是我的代码:
private void interpolate(){
float x,y,b, t = 0;
frames = new Frame[keyFrames.length];
for(int i =0;i<keyFrames.length;++i){
t+=0.001;
b = Bint(i,keyFrames.length,t);
x = b*keyFrames[i].x;
y = b*keyFrames[i].y;
frames[i] = new Frame(x,y);
}
}
private float Bint(int i, int n, float t){
float Cni = fact(n)/(fact(i) * fact(n-i));
return Cni * pow(1-t,n-i) * pow(t,i);
}
而且我注意到,帧[]数组要大得多,但我无法找到任何其他文字这是比较友好的程序员
在此先感谢。
您使用什么语言? – Blorgbeard 2011-03-30 12:18:48
[Processing] http://processing.org/它是基于Java的,但是Frame类和KeyFrame类都是我的创建。 (他们真的只是一个x,y的位置和时间字段,我没有在这个代码中使用 – Jonny 2011-03-30 12:22:36