<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>http://www.ei-der-zeit.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Oblivion%3AKreisf%C3%B6rmige_Bewegung</id>
		<title>Oblivion:Kreisförmige Bewegung - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="http://www.ei-der-zeit.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Oblivion%3AKreisf%C3%B6rmige_Bewegung"/>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Kreisf%C3%B6rmige_Bewegung&amp;action=history"/>
		<updated>2026-04-22T15:33:20Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in Skript-Wiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Kreisf%C3%B6rmige_Bewegung&amp;diff=5532&amp;oldid=prev</id>
		<title>Keris: Die Seite wurde neu angelegt: == Thema == Kreisförmige kontinuierliche Bewegungen eines Objektes sind mittels Script zu simulieren.  == Anwendung == === Aufgabenstellung === Ein Apfel...</title>
		<link rel="alternate" type="text/html" href="http://www.ei-der-zeit.com/wiki/index.php?title=Oblivion:Kreisf%C3%B6rmige_Bewegung&amp;diff=5532&amp;oldid=prev"/>
				<updated>2009-06-11T21:40:33Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: == Thema == Kreisförmige kontinuierliche Bewegungen eines &lt;a href=&quot;/wiki/index.php?title=Oblivion:Object&quot; title=&quot;Oblivion:Object&quot;&gt;Objektes&lt;/a&gt; sind mittels Script zu simulieren.  == Anwendung == === Aufgabenstellung === Ein Apfel...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Thema ==&lt;br /&gt;
Kreisförmige kontinuierliche Bewegungen eines [[ob:Object|Objektes]] sind mittels Script zu simulieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Ein Apfel soll sich 60 Sekunden lang um einen festen Punkt (dem Mittelpunkt) bewegen, der Radius soll 100 cm betragend, die Höhe soll etwas über Kopfhöhe sein und der Apfel soll in 10 Sekunden einen Kreis vollenden. Der Mittelpunkt wird beim Start aus der Position des Players bestimmt. Nach den 60 Sekunden soll der Apfel herunter fallen.&lt;br /&gt;
&lt;br /&gt;
=== Theorie ===&lt;br /&gt;
&lt;br /&gt;
Zur Theorie von Bewegungen s. die [[ob:Lineare Bewegung|Lineare Bewegung]]&lt;br /&gt;
&lt;br /&gt;
Kollisionen werden mit dem vorgestellten Algorithmus nicht bearbeitet. &lt;br /&gt;
&lt;br /&gt;
Aufwändig ist die Berechnung der Postionen auf einem Kreis  [[wikipedia:de: Kreis|(Kreisgleichung)]]. &lt;br /&gt;
Wenn man keine Winkelfunktionen nutzen kann oder will (sie sind in der Erweiterung [[constwiki:ESM Math Library|ESM Math Library]] vorhanden), müssen sie über eine [[wikipedia:de:Taylorreihe|Taylorreihe]] angenähert werden. &lt;br /&gt;
&lt;br /&gt;
== Realisierung ==&lt;br /&gt;
=== Umgebung ===&lt;br /&gt;
Ein neues Apfelobjekt mit Script ist in der Welt&lt;br /&gt;
&lt;br /&gt;
=== Script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tesscript&amp;gt;ScriptName AppleCircuit&lt;br /&gt;
;Written by keris&lt;br /&gt;
;11.06.09&lt;br /&gt;
&lt;br /&gt;
short Init&lt;br /&gt;
float xPos&lt;br /&gt;
float yPos&lt;br /&gt;
float zPos&lt;br /&gt;
float zPosStart&lt;br /&gt;
float xPosStart&lt;br /&gt;
float yPosStart&lt;br /&gt;
float phi&lt;br /&gt;
float dz&lt;br /&gt;
float Radius&lt;br /&gt;
Float Angle&lt;br /&gt;
float Pi&lt;br /&gt;
float TwoPi&lt;br /&gt;
float Period&lt;br /&gt;
float AngularVelocity&lt;br /&gt;
float Timer&lt;br /&gt;
short Start&lt;br /&gt;
short Movement&lt;br /&gt;
short PeriodCount&lt;br /&gt;
float Duration&lt;br /&gt;
short xSign&lt;br /&gt;
short ySign&lt;br /&gt;
&lt;br /&gt;
Begin GameMode&lt;br /&gt;
     if Init == 0&lt;br /&gt;
     ; setting up constants&lt;br /&gt;
Set dz  to  126;(ca. 180 cm wie vorgegeben )&lt;br /&gt;
     	Set Radius to  70 ;(ca. 100 cm wie vorgegeben )&lt;br /&gt;
     	Set pi to 3.1415926&lt;br /&gt;
     	Set twopi to 6.2531852&lt;br /&gt;
     	Set Period to 10 ; (10 s. wie vorgegeben)&lt;br /&gt;
     	Set Duration to 60&lt;br /&gt;
    	Set Start to 1&lt;br /&gt;
     	Set xPosStart to Player.GetPos x&lt;br /&gt;
     	Set yPosStart to Player.GetPos y&lt;br /&gt;
     	Set zPosStart to Player.GetPos z&lt;br /&gt;
     	Set xSign to 1&lt;br /&gt;
     	Set ySign to 1&lt;br /&gt;
&lt;br /&gt;
    	; die Koordinaten auf einem Kreis sind gegeben durch:&lt;br /&gt;
     	; x = X(Mittelpunkt) + Radius cos(phi)&lt;br /&gt;
     	; y = Y(Mittelpunkt) + Radius sin(phi)&lt;br /&gt;
     	set Init to 1&lt;br /&gt;
     	set Start to 1&lt;br /&gt;
     Endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Näherungsformeln für die Winkelfunktionen (Taylorreihe):&lt;br /&gt;
;sin(phi) = phi - phi*phi*phi / 6.0&lt;br /&gt;
;cos(phi) = (phi*phi /12.0 -1)* phi*phi /2.0 +1&lt;br /&gt;
&lt;br /&gt;
     if Start == 1&lt;br /&gt;
          Set Start to 0&lt;br /&gt;
          Set Movement to 1&lt;br /&gt;
          Set Timer to 0&lt;br /&gt;
     endif&lt;br /&gt;
&lt;br /&gt;
     if Movement == 1 ; Startposition&lt;br /&gt;
&lt;br /&gt;
          Set phi to 0&lt;br /&gt;
          Set xPos to xPosStart&lt;br /&gt;
          Set yPos to yPosStart + Radius&lt;br /&gt;
          Set zPos to zPosStart + dz&lt;br /&gt;
&lt;br /&gt;
          SetPos X XPos&lt;br /&gt;
          SetPos Y YPos&lt;br /&gt;
          SetPos Z ZPos     &lt;br /&gt;
&lt;br /&gt;
          Set Movement to 2&lt;br /&gt;
     elseif Movement == 2 ; neue Position&lt;br /&gt;
          Set Timer to Timer + GetSecondsPassed&lt;br /&gt;
          Set PeriodCount to Timer / Period&lt;br /&gt;
          Set phi to (TwoPi / Period * Timer) - (PeriodCount * TwoPi )&lt;br /&gt;
          if Phi &amp;gt; pi&lt;br /&gt;
               Set Phi to Phi - pi&lt;br /&gt;
               Set xSign to -1&lt;br /&gt;
               Set ySign to -1&lt;br /&gt;
          else&lt;br /&gt;
               Set xSign to 1&lt;br /&gt;
               Set ySign to 1&lt;br /&gt;
          endif&lt;br /&gt;
          if Phi &amp;lt; pi/4.0&lt;br /&gt;
               Set Xpos to XposStart + Radius * ((phi*phi/12-1)*phi*phi/2 + 1) * xSign&lt;br /&gt;
               Set Ypos to YposStart + Radius * (-phi*phi*phi/6 + phi) *ySign&lt;br /&gt;
          elseif Phi &amp;lt; pi/2&lt;br /&gt;
               Set Phi to pi/2.0 -Phi&lt;br /&gt;
               Set Xpos to XposStart + Radius *  (-phi*phi*phi/6 + phi) * xSign&lt;br /&gt;
               Set Ypos to YposStart + Radius * ((phi*phi/12-1)*phi*phi/2 + 1) * ySign&lt;br /&gt;
          elseif Phi &amp;lt; pi/1.5&lt;br /&gt;
               Set Phi to Phi - pi/2.0&lt;br /&gt;
               Set Xpos to XposStart - Radius *  (-phi*phi*phi/6 + phi) * xSign&lt;br /&gt;
               Set Ypos to YposStart + Radius * ((phi*phi/12-1)*phi*phi/2 + 1) * ySign&lt;br /&gt;
          else&lt;br /&gt;
               Set Phi to pi -Phi&lt;br /&gt;
               Set Xpos to XposStart - Radius * ((phi*phi/12-1)*phi*phi/2 + 1) * xSign&lt;br /&gt;
               Set Ypos to YposStart + Radius * (-phi*phi*phi/6 + phi) *ySign&lt;br /&gt;
          endif&lt;br /&gt;
&lt;br /&gt;
          SetPos X XPos&lt;br /&gt;
          SetPos Y YPos&lt;br /&gt;
          SetPos Z ZPos     &lt;br /&gt;
          If Timer &amp;gt;= Duration&lt;br /&gt;
               Set Movement  to 3&lt;br /&gt;
          endif&lt;br /&gt;
     endif&lt;br /&gt;
&lt;br /&gt;
End&amp;lt;/tesscript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Handhabung ===&lt;br /&gt;
Das Script liegt auf einem neuen Apfel-Objekt.&lt;br /&gt;
Es wird in obigem Script nicht bei jeder Bewegung ein Inkrement zur aktuellen Position addiert sondern die neue Position von der Ausgangsposition aus bestimmt.&lt;br /&gt;
Dies Script ist in der Struktur dem für die Lineare Bewegung vergleichbar. Nur die Berechung der Positionen macht das Script lang. Dies ist aber kein implizites CS-Problem sondern reine Mathematik.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Hinweise==&lt;br /&gt;
*[[ob:Timer|Timer]]&lt;br /&gt;
*[[wikipedia:de:Reduktionsformel|Reduktionsformel]]&lt;br /&gt;
*[[wikipedia:de:Taylorreihe|Taylorreihe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Scriptkategorie |Bewegung |Level_2_Scripts|Kreisförmige Bewegung}}&lt;/div&gt;</summary>
		<author><name>Keris</name></author>	</entry>

	</feed>