AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kugel/Kreis prallt von Eck/Kante ab

Kugel/Kreis prallt von Eck/Kante ab

Ein Thema von Florian H · begonnen am 11. Okt 2006 · letzter Beitrag vom 30. Dez 2008
Antwort Antwort
Seite 1 von 6  1 23     Letzte » 
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#1

Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 16:28
Hallo ihr Lieben,

ich entwickle grad ein Spiel, in dem eine Kugel (2D -> praktisch ein Kreis) durch ein Spielfeld rollt, das durch Blöcke gegeben und begrenzt ist.
Nun soll diese Kugel von den Blöcken abprallen. Das tut sie auch prima, sofern sie auf deren Seitenflächen trifft (da diese rechtwinklig sind ist ja einfach Einfalls- gleich Ausfallswinkel).
Aber wenn so eine Kugel auf ein Eck trifft, sieht es da mit dem Abprallen ganz und gar anders aus - ich frage mich nur schon seit einigen Stunden, wie das konkret ist bzw. vor allem, wie ich das in Delphi umsetzen kann.

Ich hab das mal illustriert:
http://klammcam.loseoase.de/host/ball_abprallen.png

Das ist ja schon relativ komplex, da es ja auf den Aufprallwinkel (s. 2 und 3) ankommt und auf die Verschiebung zur Kante (s. 1 und 3)..

Die Bewegung der Kugel wird über x- und y-Änderung angegeben, lässt sich also rel. einfach in irgendwas anderes umrechnen, falls nötig.

Also Kugel 1 bewegt sich z.B. mit [0;1] (nicht nach links/rechts, aber 1 nach unten), Kugel 2 mit [-1;-1] (eins nach links, eins nach oben) pro Zeiteinheit.


Viele Grüße
flo
Florian Heft
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#2

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 16:37
ich kanns dir sagen, aber nicht formulieren has versucht und es versteht ja doch keine sau
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#3

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 16:41
Hm.. einen Versuch wärs wert (gewesen)?
Florian Heft
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#4

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 16:43
1:strecke kante kreismittelpunkt
2:winkel Kreislaufahn
3:1 um 90grad drehen differenz und dann einfallswinkel =ausfallswinkel
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 16:45
Ich weiß nicht genau, wie es funktioniert, aber ich kann schätzen... Wünsch mir Glück

Ich würde sagen, du ziehst eine imaginäre Gerade durch die Ecke, auf die der Kreis zufliegt und den Mittelpunkt des Kreises. Diese Linie rotierst du um 90 Grad und benutzt sie als virtuelle Kante, an der der Kreis abprallt.

Muss nicht stimmen

edit: Kasten?
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#6

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 16:46
Bei Flächen gilt ja einfall=ausfall an der Flächennormalen.
Bei Kollision mit der Ecke wäre die 'Flächennormale' der Vektor von Ecke zur Kugelmitte. Dann gilt auch hier wieder einfall=ausfall.
Die einzige Schwierigkeit besteht nur darin, herauszubekommen, wann die Kugel nicht die Fläche, sondern die Kante berührt. Das kann man dann ermitteln, indem man schaut, ob der Fußpunkt der Flächennormalen durch den Kreismittelpunkt innerhalb oder ausserhalb der Fläche liegt.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#7

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 16:47
so jetzt haste 3 mal die selbe antwort: alle 3 zusammen müssten dein problem verständlich beantworten

ok neuerdiings sinds 4
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 16:48
Ds ist eigentlich nicht so schwer, würde ich mal sagen.

Wenn die Kugel auf die Ecke trifft, denkst du dir eine Gerade, die durch die Ecke geht und senkrecht auf die Verbindungslinie Ecke-Kreismittelpunkt steht. Dann lässt du die Kugel an dieser Geraden abprallen und dein Problem sollte gelöst sein.
An der Seitenfläche machst du eigentlich auch nichts anderes, du verbindest den Auftreffpunkt mit deinem Mittelpunkt und rechnst o.g. Gerade aus, die hier nur mit der Seitenkante des Rechtecks zusammenfällt. Also eigentlich nur ein Spezialfall der Ecke.
Zur Berechnung der neuen Geschwindigkeit könntest du z.B. Rotationsmatrizen benutzen.

// da war zwar ein Kasten, aber sagen wollte ich es trotzdem.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#9

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 18:51
hab mich jetzt auch für dein problem begeistert und hab eine frage: wass passiert, wenn eine Kugel auf 2 Kanten gleichzeitig trifft?

zeichnung beispiele jeweils einfallswinkel =270grad (nach oben)


achja: wie findest du herraus, dass dein Kreis Kollidiert?
Miniaturansicht angehängter Grafiken
unbenanntt_563.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Kugel/Kreis prallt von Eck/Kante ab

  Alt 11. Okt 2006, 18:54
Du verbindest die beiden Punkte, konstruierst eine Tangente parralel zu der entstehenden Gerade und lässt die Kugel daran abprallen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:30 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