Thema: Delphi Logarithmische Skalen

Einzelnen Beitrag anzeigen

Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Logarithmische Skalen

  Alt 12. Okt 2018, 20:07
Hallo,

ich stehe (wie immer) etwas auf dem Schlauch.
Ich möchte eine analoge VU-Meter Komponente entwickeln und komme
mit der logarithmischen Skale nicht weiter.
Als Basis für die Berechnung beziehe ich micht auf 05_04_logarithmische_skalen_AB.pdf

Nur das Ergebniss ist nicht so wie erwartet

Für die Darstellung der logarithmischen Skale verwender ich folgende Procedure
Delphi-Quellcode:
  
...
  procedure PainLogScale(aRect : TRect; aMax : Integer);
  var
    I,
    L,
    X : Integer;

    U, V: Extended;
    Str : String;
  begin
    with Canvas do
    begin
      FLineWidth := aRect.Right - aRect.Left;
      L := aRect.Left;
      I := 0;
      while I <= (aMax div 10) do
      begin
        MoveTo(L, aRect.Bottom);
        LineTo(L, aRect.Bottom - 10);

        Str := Format('%d', [Round(I*10)]);
        X := L - (TextWidth(Str) div 2);
        if (I = 0) or (I > 1) then
          TextOut(X, aRect.Bottom - (TextHeight('Wy') + 10), Str);

        Inc(I);

        U := Log10(I);
        V := FLineWidth * U;
        DoLogEvent(X, U, V);

        L := Trunc(V);
      end;
    end;
  end;
...
Wie man in der angehängten Grafik unschwer erkennen kann, sind 100% nicht 100% und ich weiß nicht warum.

Die Demo zum Scrennshot liegt bei.

Hat jemand einen Tipp?
Miniaturansicht angehängter Grafiken
logscale.png  
Angehängte Dateien
Dateityp: zip LogScale.zip (54,1 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat