Я пытаюсь реализовать кривые Безье для задания. Я пытаюсь переместить мяч (используя кривые Безье), предоставив моей функции массив ключевых кадров. Функция должна дать мне все кадры между ключевыми кадрами... или контрольными точками... но хотя я использую формулу, найденную на wikipedia... на самом деле это не работает :s
ее мой код:
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);
}
Также я заметил, что массив frameworks[] должен быть намного больше, но я не могу найти другой текст, более удобный для программиста.
Заранее спасибо.