Da mir geraten wurde mit dieser Funktion :
Delphi-Quellcode:
function PointInCircle(p, center:TPoint; radius:integer):Boolean;
begin
// SQR() = Square-Funktion = quadrieren
// Hier wird die Formel a^2 + b^2 = c^2 von Pythagoras ausgenützt
Result := SQR(p.x-center.x) + SQR(p.y-center.y) <= SQR(radius);
end;
meinen Quelltext :
Delphi-Quellcode:
// testen, ob der Kreis den linken Endpunkt der Linie berührt
rq := (shape1.width div 2); rq := rq*rq; // rq = radius zum Quadrat
ax := (shape1.Left + shape1.Width div 2) - shape2.left; // ax = abstand in x-richtung
ay := (shape1.top + shape1.Height div 2) - shape2.top; // ay = abstand in y-richtung
aq := ax*ax + ay*ay; // aq = Abstand zum Quadrat
if aq > rq then
begin
dx := -dx;
dy := -dy;
end;
ay := (shape1.top + shape1.Height div 2) - shape2.top - shape2.Height; // ay = abstand in y-richtung
aq := ax*ax + ay*ay; // aq = Abstand zum Quadrat
if aq > rq then
begin
dx := -dx;
dy := -dy;
end;
// testen, ob der Kreis den rechten Endpunkt der Linie berührt
ax := shape2.Left+shape2.width-shape1.left-shape1.width div 2; // ax = abstand in x-richtung
aq := ax*ax + ay*ay; // aq = Abstand zum Quadrat
if aq > rq then
begin
dx := -dx;
dy := -dy;
end;
ax := shape2.Left+shape2.width-shape1.left-shape1.width div 2; // ax = abstand in x-richtung
ay := (shape1.top + shape1.Height div 2) - shape2.top; // ay = abstand in y-richtung
aq := ax*ax + ay*ay; // aq = Abstand zum Quadrat
if aq > rq then
begin
dx := -dx;
dy := -dy;
end;
zu vereinfachen. Doch als ich mich ebend näher deamit auseinander gesetzt habe ist mir aufgeallen das ich diese Funktion an sich verstehe aber nicht ganz weiß wofür
Result := SQR(p.x-center.x) + SQR(p.y-center.y) <= SQR(radius);
p.x-center.x und p.y-center.y steht.
Kann mir vielleicht wer dabei helfen ?!Mein eigentliches Problem was mich zu dieser Funktion brachte , war das mein Pong Spiel nicht waagerecht funktionierte , da mein Shape1 (Kugel) immer an der linken und rechten Seite durch dsa Sahpe2 durchläuft anstatt abzuprallen..
Über eine Anwtort oder ein Beispiel an einer Änderung meines Quelltextes freuen , da ich schon knapp 2 Tage an diesem Problem rästel und was mich davon abhält weiterzuarbeiten
Mfg Andi