Thema: Delphi Lineare Interpolation

Einzelnen Beitrag anzeigen

Six

Registriert seit: 2. Jun 2005
42 Beiträge
 
#29

Re: Lineare Interpolation

  Alt 21. Jul 2005, 21:12
So, hier ist dann wie versprochen die Lösung des Problems:

Delphi-Quellcode:
procedure TForm1.XYZTest(P1x, P1y, P2x, P2y: integer);
var
  Steigung: double;
  i: integer;
  Counter: integer;
  FrequenzProZeitpunkt: double;
begin
  Steigung := (P2y - P1y) / (P2x - P1x);
  Counter := 0;
  FrequenzProZeitpunkt := 1;
  for i := P1x to P2x do
  begin
    Inc(Counter);
    if Counter = FrequenzProZeitpunkt then
    begin
      FrequenzProZeitpunkt := Round(Steigung * i + P1y);
      JvStringGrid2.Cells[1, Tabellenzeiger] := IntToStr(i);
      if Aus then
        JvStringGrid2.Cells[0, Tabellenzeiger] := 'Aus'
      else
        JvStringGrid2.Cells[0, Tabellenzeiger] := 'An';
      JvStringGrid2.InsertRow(JvStringGrid2.RowCount + 1);
      Aus := not Aus;
      Inc(Tabellenzeiger);
      Counter := 0;
    end;
  end;
  // Tabelle Umsetzen
  JvStringGrid2.RemoveRow(JvStringGrid2.RowCount - 1);
  for i := 1 to JvStringGrid2.RowCount do
  begin
    PaintBox1.Canvas.Brush.Color := clblack;
    PaintBox1.Canvas.Brush.Style := bssolid;
    if JvStringGrid2.Cells[0, i] = 'Anthen
      PaintBox1.Canvas.Rectangle(StrToInt(JvStringGrid2.Cells[1, i - 1]), 0,
        StrToInt(JvStringGrid2.Cells[1, i]), PaintBox1.Height);
  end;
end; // XYZ (TForm1)
Wie das Ganze dann am Ende aussehen könnte ist im Anhang zu finden.

Grüße

Six
Miniaturansicht angehängter Grafiken
sound4_149.jpg  
  Mit Zitat antworten Zitat