Einzelnen Beitrag anzeigen

Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: 2 Objekte entfernung berechnen mit dem Mittelpunkt

  Alt 2. Jul 2006, 11:53
Wie wäre es mit:
Geradengleichung g aufstellen. In die gleichung den Rand von Object A einsetzen = Schnittpunkt von g und Rand.
Dann nochmal den Rand von Object B einsetzen und dann mit Pythagoras den abstand zwischen den 2 Schnittpunken berechnen.

Also

Delphi-Quellcode:
var MitteA, MitteB, SchnittA, SchnittB : TPoint;
    m, entf : integer;
MitteA.X := ObjectA.left + ObjectA.width div 2;
MitteA.Y := ObjectA.Top + ObjectA.Height div 2;
MitteB.X := ObjectB.left + ObjectB.width div 2;
MitteB.Y := ObjectB.Top + ObjectB.Height div 2;
m := ((MitteB.Y - MitteA.Y) / (MitteB.X - MitteA.X));
SchnittA.Y := (m * ObjectA.rand.X ) - (m*MitteA.X) + MitteA.Y;
SchnittA.X := ObjectA.rand.X;
SchnittB.Y := (m * ObjectB.rand.X) - (m*MitteA.X) + MitteA.Y;
SchnittB.X := ObjectB.rand.X;
entf := sqrt( sqr(SchnittB.X-SchnittA.X) + sqr(SchnittB.Y-SchnittA.Y) );
Nach der 2-Punkte Formel: y - y1 = ((y2 - y1) / (x2 - x1)) * (x - x1)


Hoffe das klappt!
Jan
  Mit Zitat antworten Zitat