Krzywe Beziera

0

Czy ktoś wie w jaki sposób za pomocą równań określić krzywą (podobną do krzywej beziera) ale w ten sposób by odkształcała się ona tylko w granicach funkcji podobnej do paraboli. tzn. mam dane dwa punkty odcinka i "chwytając" za trzeci punkt, znajdujący się na odcinku, odkształcam całość w dowolną stronę.
Jest mi to pilnie potrzebne. Dzięki. :-(

0
function xyBezier(p1, p2, p3, p4 : TPunkt; step : real) : TPunkt;
begin
      xyBezier.x:=(1-step)*(1-step)*(1-step)*P1.x + 3*(1-step)*(1-step)*step*P2.x + 3*(1-step)*step*step*P3.x + step*step*step*P4.x;
      xyBezier.y:=(1-step)*(1-step)*(1-step)*P1.y + 3*(1-step)*(1-step)*step*P2.y + 3*(1-step)*step*step*P3.y + step*step*step*P4.y;
end;

gdzie TPunkt to:

  TPunkt = record 
     x,y : real;
    end;

step ma ma należeć do przedziału 0-1 (0 - początek krzywej, 0.5 - połowa, 1 - koniec)

Jeśli chcesz osiągnąć coś na kształt paraboli to p1, p2, p3, p4 powinny być wierzchołkami prostokąta.

Oczywiście nie muszę pisać, że aby narysować krzywą z np 100 punktów musisz zrobić pętelkę w której step będzie się zmieniał od 0 do 1 co 0,01.

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