Jak narysować sinusoidę

Dryobates

Jeżeli chcemy narysować wykres jednego okresu funkcji sinus to możemy skorzystać z kilku możliwości

const
A = 100; {Amplituda}
L = 150; {Dlugosc}
G = 1.0; {Gęstość. Im większa liczba tym mniejsza gęstość}
var
i: Integer;
begin
{Jeżeli nie zależy nam na dokładności i szybkości, to możemy rysować punkt po punkcie}
for i := 0 to L do
Canvas.Pixels[i, 100+Trunc(Asin(2Gi/LPi))] := clRed;

{Jeżeli chcemy mieć dosyć dokładną ciągła sinusoidę to możemy użyć PolyBezier}
Canvas.PolyBezier([Point(0,100), Point(L7 div 15,Trunc(100+3.4A)), Point(L8 div 15,Trunc(100-3.4A)), Point(L,100)]);

{Największe jednak możliwości daje nam LineTo. Możemy dostosować gęstość, czyli liczbę punktów pośrednich, a co za tym idzie szybkość i dokładność krzywej}
Canvas.MoveTo(0, 100);
for i := 0 to L do
Canvas.LineTo(i, 100+Trunc(Asin(2Gi/LPi)));
end;

1 komentarz

witam.. czy jest jakis sposob na narysowanie bardzo zlozonych funkcjii ??