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