[C#] krzywe beziera

0

witam. przejzalem internet, przejzalem to forum, ale nie rozumiem.
moglby ktos mi wytlumaczyc lopatologicznie jak narysowac wykres krzywej beziera stopnia 3 majac dane wspolczynniki wielomianow ?

ja zrobilem takie cos i powiem szczerze, jakies dziwne rzeczy mi wychodza.


            Bitmap wykres = new Bitmap(300, 300);

            for (double i = 0.001; i < 1; i += 0.001)
            {
                double px = double.Parse(textBox1.Text) * Math.Pow(1 - i, 3) + double.Parse(textBox2.Text) * Math.Pow(1 - i, 2) + double.Parse(textBox3.Text) * 1 - i + double.Parse(textBox4.Text);
                double py = double.Parse(textBox5.Text) * Math.Pow(1 - i, 3) + double.Parse(textBox6.Text) * Math.Pow(1 - i, 2) + double.Parse(textBox7.Text) * 1 - i + double.Parse(textBox8.Text);
                wykres.SetPixel(  (int)(px), (int)(299 - py), Color.Black);
            }

            pictureBox1.Image = wykres;
            pictureBox1.Refresh();

co jest nie tak ?

EDIT:
albo inaczej zapytam.
czy wspolrzedne x0,x1,x2,x3,y0,y1,y2,y3 w tych wzorach :

x(t) = (1 –t)3 x0 + 3t (1 – t)2 x1 + 3t2 (1 – t) x2 + t3 x3
y(t) = (1 –t)3 y0 + 3t (1 – t)2 y1 + 3t2 (1 – t) y2 + t3 y3

to bezposrednie wspolrzedne punktow kontrolnych krzywej, czy tylko od nich zaleza ??

0
Graphics.DrawBezier()
0

(x0,y0) to punkt początkowy (x3,y3) to punkt końcowy pozostałe to tylko punkty zakrzywienia, praktycznie nigdy nie są osiągalne. Dla t = 0 masz otrzymać (x0,y0), dla t=1 masz otrzymać (x3,y3) dla t pomiędzy 0 a 1 dostaniesz punkty pośrednie. Tyle musisz wiedzieć.
Poza tym masz błędy we wzorach :

  1. brak mnożenie przez 3 dla dwóch sum
  2. brak nawiasów w trzeciej sumie dla 1-i
0

aa, dzieki wielkie panowie, to mi bardzo pomoglo. znaczy ze z moja aproksymacja jest cos nie tak.
btw - myslicie ze mozna tak aproksymowac krzywe beziera, ze aproksymuje jej poszczegolne kawalki a potem wyliczam srednia dla kazdego parametru i te srednie to wspolrzedne calej krzywej ?
ja to tak intuicyjnie wymyslilem, ale nie umiem tego z matematycznego punktu widzenia rozpatrzyc, no a w programie naraziue wychodza glupoty ..

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