<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://kicker-intern.ee.hm.edu/wiki/index.php?action=history&amp;feed=atom&amp;title=Ballkollision</id>
	<title>Ballkollision - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://kicker-intern.ee.hm.edu/wiki/index.php?action=history&amp;feed=atom&amp;title=Ballkollision"/>
	<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;action=history"/>
	<updated>2026-05-16T06:15:18Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Kicker (internals)</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;diff=372&amp;oldid=prev</id>
		<title>PeterK am 21. Dezember 2008 um 09:44 Uhr</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;diff=372&amp;oldid=prev"/>
		<updated>2008-12-21T09:44:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Dezember 2008, 09:44 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 5:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 5:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Es stehen momentan zwei verschieden Möglichkeiten zur Disskusion oder die Sinnvolle Kombination aus beiden um Rechenaufwand zu sparen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Es stehen momentan zwei verschieden Möglichkeiten zur Disskusion oder die Sinnvolle Kombination aus beiden um Rechenaufwand zu sparen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nach einigen Überlegungen und einem guten Tipp gibts es nun eine dritte Variante.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 27:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 28:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Vektoren sind leicht gebildet: Startvektor enthält alte Koordinaten und Zeitpunkt 0, Endvektoren die neuen Koordinaten und Zeitpunkt je nach Zeitinterval. Aus diesen Vektoren lassen sich also für Ball und Spieler 3-dimensionale Geraden berechen und von diesen dann der Abstand zueinander. Wie in Variante 1 muss für eine Kollision der Abstand kleiner als &#039;&#039;Ballradius + Spielerradius&#039;&#039; sein und bei Kollision wird ebenfalls die Schusswertung gestartet.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Vektoren sind leicht gebildet: Startvektor enthält alte Koordinaten und Zeitpunkt 0, Endvektoren die neuen Koordinaten und Zeitpunkt je nach Zeitinterval. Aus diesen Vektoren lassen sich also für Ball und Spieler 3-dimensionale Geraden berechen und von diesen dann der Abstand zueinander. Wie in Variante 1 muss für eine Kollision der Abstand kleiner als &#039;&#039;Ballradius + Spielerradius&#039;&#039; sein und bei Kollision wird ebenfalls die Schusswertung gestartet.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 3. Variante (die kluge) ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Das bisherige Problem war, dass die Abtastrate zu grob war, um die momentane Situation als statisch anzunehmen. Dieses Problem wurde ganz einfach dadurch gelöst, dass es eine &quot;interne&quot; feinere Abtastung gibt. D.h. aufgrund der Informationen von Ballposition und Geschwindigkeit werden Zwischenwerte berechnet und mit diesen auf Kollision überprüft. Die statische Überprüfung ist natürlich viel leichter, als die dynamische und man spart sich eine menge Aufwand.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 32:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 38:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nun wird überlegt, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ob die 1.&lt;/del&gt; Variante&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ausreicht oder die 2.&lt;/del&gt; Sinnvoller bzw. nötig ist&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Oder&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;die&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;erste&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Variante&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wird&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zur groben Überprüfung verwendet&lt;/del&gt; und &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ermittelt&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nur&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;einen&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;potentiellen Kollisionspartner, der dann mit Variante 2 genauer analysiert wird.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nun wird überlegt, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;welche&lt;/ins&gt; Variante Sinnvoller bzw. nötig ist &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;oder&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ob&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;eine&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kombination&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;das&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;beste&lt;/ins&gt; und &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;schnellste&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ergebnis&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;liefert.&lt;/ins&gt; &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nach einigen Versuchen und genaueren Überlegungen konnte Variante 2 ausgeschlossen werden, da eine zeitliche Dimension zur Abstandsberechnung natürlich &quot;matematischer Nonsense&quot; ist. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die beiden Übrigen  Varianten können in einer sinnvollen Kombination verwendet werden und zwar Variante 1 als grobe Überprüfung und Variante 3 zur feinen Abtastung.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
	<entry>
		<id>https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;diff=360&amp;oldid=prev</id>
		<title>PeterK: Die Seite wurde neu angelegt: Der wohl kniffligste Teil der Simulation, neben der Schussauswertung, ist die Kollision zwischen Ball und Spieler. Dieses Perfekt zu simulieren würde den Aufwand nicht...</title>
		<link rel="alternate" type="text/html" href="https://kicker-intern.ee.hm.edu/wiki/index.php?title=Ballkollision&amp;diff=360&amp;oldid=prev"/>
		<updated>2008-11-21T13:05:23Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: Der wohl kniffligste Teil der Simulation, neben der Schussauswertung, ist die Kollision zwischen Ball und Spieler. Dieses Perfekt zu simulieren würde den Aufwand nicht...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der wohl kniffligste Teil der Simulation, neben der Schussauswertung, ist die Kollision zwischen Ball und Spieler. Dieses Perfekt zu simulieren würde den Aufwand nicht wert und erst bei spezialisierter Spielersteuerung von Bedeutung sein. Aus diesem Grund werden einige vereinfachungen getroffen, die falls es benötigt wird, leicht wieder geändert werden können:&lt;br /&gt;
&lt;br /&gt;
- Ball und Spieler sind 2 Dimensionale Kreise, die sich nur in der Ebene bewegen können&lt;br /&gt;
- Die Abtastung bzw. Überprüfung auf Kollisionen passiert anfangs grob&lt;br /&gt;
&lt;br /&gt;
Es stehen momentan zwei verschieden Möglichkeiten zur Disskusion oder die Sinnvolle Kombination aus beiden um Rechenaufwand zu sparen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 1. Variante (die einfache) ==&lt;br /&gt;
&lt;br /&gt;
Da eine maximale Ballgeschwindigkeit festgestellt wurde (siehe [[Kicker]]) und man annimmt, dass sich die Spieler zwischen zwei Abfragen nur in einem gewissen Maße bewegen, kann man eine grobe Abschätzung machen, ob und welcher Spieler mit dem Ball kollidieren könnte. D.h.:&lt;br /&gt;
&lt;br /&gt;
maximale_Geschwindigkeit * Zeitinterval = maximale_Ballbewegung&lt;br /&gt;
&lt;br /&gt;
Wenn also nun die alte oder neue Ballposition einen kleineren Abstand zu einem Spieler hat als &amp;#039;&amp;#039;maximale_Bewegung/2 + Ballradius + Spielerradius&amp;#039;&amp;#039; kann eine Kollision stattfinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun berechnet man sich aus alter und neuer Ballposition die Bewegungsgerade (alternativ aus Ballposition und Geschwindigkeitsvektor) und berechnet sich den Abstand zu dem Spielermittpunkt, der für die Berechnung als stillstehend betrachtet wird. Ist der Abstand kleiner als &amp;#039;&amp;#039;Ballradius + Spielerradius&amp;#039;&amp;#039; muss zwangsläufig eine Kollision stattgefunden haben. Sollte das der Fall sein, wird das Schussauswertungsprogramm aufgerufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Variante (die komplizierte) ==&lt;br /&gt;
&lt;br /&gt;
Ball und Spieler sind 3-dimensionale Vektoren, die aus x- und y-Koordinate bestehen und als 3. Dimension die Zeit beinhalten. Dadurch kann eine genauere Kollisionsabfrage stattfinden und die Vereinfachung das die Spieler zum Berechnungszeitpunkt stillstehen wird aufgehoben. &lt;br /&gt;
&lt;br /&gt;
Die Vektoren sind leicht gebildet: Startvektor enthält alte Koordinaten und Zeitpunkt 0, Endvektoren die neuen Koordinaten und Zeitpunkt je nach Zeitinterval. Aus diesen Vektoren lassen sich also für Ball und Spieler 3-dimensionale Geraden berechen und von diesen dann der Abstand zueinander. Wie in Variante 1 muss für eine Kollision der Abstand kleiner als &amp;#039;&amp;#039;Ballradius + Spielerradius&amp;#039;&amp;#039; sein und bei Kollision wird ebenfalls die Schusswertung gestartet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Auswertung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wird überlegt, ob die 1. Variante ausreicht oder die 2. Sinnvoller bzw. nötig ist. Oder die erste Variante wird zur groben Überprüfung verwendet und ermittelt nur einen potentiellen Kollisionspartner, der dann mit Variante 2 genauer analysiert wird.&lt;/div&gt;</summary>
		<author><name>PeterK</name></author>
	</entry>
</feed>