AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Break-Game, Kugel auf Rechtecklanden lassen ...
Thema durchsuchen
Ansicht
Themen-Optionen

Break-Game, Kugel auf Rechtecklanden lassen ...

Ein Thema von KleinAmann · begonnen am 26. Jun 2008 · letzter Beitrag vom 6. Jul 2008
 
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: Break-Game, Kugel auf Rechtecklanden lassen ...

  Alt 27. Jun 2008, 00:48
Genau wird dein Ball jedoch in den seltensten Fällen treffen, da er sich wahrscheinlich meist um mehr als nur einen Pixel pro Step bewegt. Die genauste Möglichkeit das in den Griff zu bekommen ist es, wenn du den Flugvektor den Balles nimmst, und die Gerade die er erzeugt mit der Kollisionsgeraden schneidest. Liegt der Schnittpunkt innerhalb des unskalierten Flugvektors, tritt zwischen dem letzten und nächsten Step die Kollision ein. Dann kannst du den Flugverktor an der Normalen der Kollisionsgeraden im Schnittpunkt spiegeln (Reflexion), und ihn um den restlichen Betrag den der vorige Flugvektor über die Kollisionsgerade hinaus geht in die neue Richtung verschieben. Damit hast du dann die Kollision "zwischen" zwei Steps korrekt berechnet, obwohl der Ball den Schläger niemals sichtbar berührt.

Der einfachere und ungenauere (meist aber ausreichende) Weg ist es, den Ball sobald der über die Kollisionsgerade hinaus ist, genau über diese zu platzieren, und fortan den reflektierten alten Flugvektor zum aktuellen zu machen. Damit erspart man sich die Schnittpunktbestimmung, und die Verhältnisbildung des Schnittpunktes zum Flugvektor, sowie ein paar Additionen. Nachteil der Variante ist, dass man den tatsächlichen Schnittpunkt ja nur noch approximiert, und nicht die exakte Flugbahn einhält. Dadurch kann das gerade bei hohen Geschwindigkeiten zu ruckartigem unerwarteten Verhalten führen.

Gruß,
Medium

Edit: Hab mal noch n Bildchen zu obigem gemacht. In Worten ist das glaube ich schwer nachvollziehbar.
Angehängte Grafiken
Dateityp: gif kollision_449.gif (21,6 KB, 76x aufgerufen)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz