aproksymacja krzywej krzywą beziera

0

Witam,
Przeleciałem całego googla i dalej nie rozumiem jak dokonać aproksymacji krzywej krzywą beziera.
Napisałem coś takiego ale nie działa

public void Bezier(double[] b, int cpts, double[] p) throws Exception
{
int npts = (b.length)/2;
int iCount = 0; int jCount = 0;
double step; double t = 0;
step = (double)1.0/(cpts - 1);
for(int i1 = 0; i1 != cpts; i1++)
{
if ((1.0 - t) < 5e-6)
t = 1.0;
jCount = 0;
p[iCount] = 0.0;
p[iCount + 1] = 0.0;
for (int i = 0; i != npts; i++)
{
double basis = Bernstein(npts - 1, i, t);
p[iCount] += basis * b[jCount];
p[iCount + 1] += basis * b[jCount + 1];
jCount = jCount +2;
}
iCount += 2;
t += step;
}
SaveToFile(p,b, "test.csv");
}
private double Ni(int n, int i) throws Exception
{
double ni;
double a1 = justMeth(n); double a2 = justMeth(i);
double a3 = justMeth(n-i);
ni = a1 / (a2*a3);
System.out.print("ni " + ni);
return ni;
}
private double Bernstein(int n, int i, double t) throws Exception
{
double basis; double ti; double tni;
if (t == 0.0 && i == 0)
ti = 1.0;
else
ti = Math.pow(t, i);

     if (n == i && t == 1.0) 
            tni = 1.0; 
     else 
            tni = Math.pow((1 - t), (n - i));

    basis = Ni(n, i) * ti * tni; 
    return basis;

}
private double justMeth(int n) throws Exception
{

   return appx[n];

}

Proszę o pomoc bądź najlepiej opis na przykładzie (psełdokod)

0

Łał, słyszałem że Chuck Noris potrafi zgrać cały internet na dyskietkę, ale żeby ktoś przeleciał całego googla ... , tego jeszcze nie słyszałem. ;D

0

Dzięki, ale do Chucka mi daleko...

1 użytkowników online, w tym zalogowanych: 0, gości: 1