Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
Delphi 10.4 Sydney
|
AW: Probleme mit Sinus Darstellung
27. Feb 2015, 10:28
Eine stehende Welle könnte man in den Code in etwa so implementieren (hab den Code von Blup jetzt aber nicht probiert).
Delphi-Quellcode:
function FX1(const X: double): double;
begin
Result := 2 * Sin(X + DeltaX);
end;
function FX2(const X: double): double;
begin
Result := 2 * Sin(DeltaX - X + Pi);
end;
function FX3(const X: double): double;
begin
Result := FX1(X) + FX2(X);
end;
procedure TFTest.StartDrawButtonClick(Sender: TObject);
begin
DeltaX := 0;
DrawTimer.Interval := 50;
DrawTimer.Enabled := true;
end;
procedure TFTest.StopDrawButtonClick(Sender: TObject);
begin
DrawTimer.Enabled := false;
end;
procedure TFTest.DrawTimerTimer(Sender: TObject);
begin
DrawTimer.Enabled := false;
try
PaintBox1.Invalidate;
DeltaX := DeltaX + PI / 18;
Application.ProcessMessages;
finally
DrawTimer.Enabled := true;
end;
end;
procedure TFTest.PaintBox1Paint(Sender: TObject);
..
P := BerechnePunkteDarstellung(FX1, R, x0, y0, dx, dy);
Canvas.Pen.Color := clBlue;
ZeichnePunkteDarstellung(Canvas, R, P);
P := BerechnePunkteDarstellung(FX2, R, x0, y0, dx, dy);
Canvas.Pen.Color := clRed;
ZeichnePunkteDarstellung(Canvas, R, P);
P := BerechnePunkteDarstellung(FX3, R, x0, y0, dx, dy);
Canvas.Pen.Color := clLime;
ZeichnePunkteDarstellung(Canvas, R, P);
end;
end;
|
|
Zitat
|