Einzelnen Beitrag anzeigen

cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#1

Entfernung zwischen zwei Pixelkoordinaten

  Alt 2. Nov 2007, 14:55
Hi, ich möchte die entfernung zwischen 2 pixelpunkten in einem Panel berechnen lassen, und das wie folgt.

in unserem Hörsaal haben wir ca 30 PCs. Ich möchte ein Programm schreiben, mit dem man ein Surroundsound für diese PCs erstellen kann. Dafür hab ich mir eine Oberfläche (im Anhang) erstellt und möchte jetzt für jeden PC die Lautstärke in Abhängigkeit zur Entferung eines Punktes(welcher sich mit dem Mauszeiger bewegt) berechnen.
Dazu habe ich folgende Funktion aufgestellt und sie funktioniert auch reibungslos.

hier erstmal der code
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject); //Timerintervall auf 250
          var
          topx:real; entfernung:integer;
          leftx:real;
          shape1top, shape1left:integer;
   begin
    shape1Top:=shape1.Top;shape1left:=shape1.Left;

//PC031
topx:=abs(PC031.Top-shape1Top);
leftx:=abs(PC031.left-shape1left);
entfernung:=(250*trunc(ntewurzel(2,trunc(power(leftx,2)+power(topx,2)))));
if entfernung>65000 then entfernung:=65000 else;
SetMasterVolume(MasterVolumeControl,65000-entfernung);
{Lautstärke des PCs}:=floattostr(65000-entfernung); //6500 als maximaler Lautsärkewert
Problem ist nur, dass sie viel zu viel Performace nimmt, vor allem wenn ich diese Funktion 30 mal jede Viertelsekunde durchlaufen lassen muss.

so lange rede kurzer sinn, habt ihr eine einfachere Lösung mit der ich die Entfernung zweier Punkte ausrechnen kann? sie sollte allerdings noch möglichst genau sein

schonmal thx für die Antwort, lg cRayZo
Miniaturansicht angehängter Grafiken
projekt2_921.jpg  
  Mit Zitat antworten Zitat