<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Objekt Steil Bewegen]]></title><description><![CDATA[<p>Hi,</p>
<pre><code class="language-cpp">// bewegen des balles in 360 grad, ausgangspunkt wie im Koordinatensystem
//               |          -    |
//               |        -      |
//               |      -        |
//               |    -          |
//               |  -   \        | 60°
//               |-      \       |
//--------------- -------------------------
//               |
//               |
//               |
//               |
//               |
//
void FallingObject::MoveDegrees ( float Degrees, float Range ){
float Y;
Degrees = 360 - Degrees;
short int ModifierX = 1;
short int ModifierY = 1;
if ( Degrees == 90 ){
        Y = Range;
        Range = 0;
}else if ( Degrees == 180 ){
        Y = 0;
        Range *= -1;
}else if ( Degrees == 270 ){
        Y = Range * -1;
        Range = 0;
}else if ( Degrees == 360 ){
        Y = 0;
}else{
if (( Degrees &gt; 90 ) &amp;&amp; ( Degrees &lt; 180 )){
        Degrees -= 90;
        ModifierX = -1;
}
if (( Degrees &gt; 180 ) &amp;&amp; ( Degrees &lt; 270 )){
        Degrees -= 180;
        ModifierX = -1;
        ModifierY = -1;
}
if (( Degrees &gt; 270 ) &amp;&amp; ( Degrees &lt; 360 )){
        Degrees -= 270;
        ModifierY = -1;
}
        Degrees = Degrees * M_PI/180;
        do{                      // Problemstelle
                if ( Y != 0 ){
                Range++;
                }
                Y =  tan(Degrees)  * Range ;
        }while ( !abs(Y) );// Kann keine koordinaten unter 0 zeichnen
                           // Abs gibt int zurück &lt; 0 = 0
}
Y *= (float)ModifierY;
Range *= (float)ModifierX;
Move(Range,Y);
}
</code></pre>
<p>das is die bewegungsmethode für mein objekt, wie man sieht nach grad.<br />
Nur hab ich jetzt das problem das je steiler die gradzahl ( steil = hohe grad aber != 90,180,270,360 ) desto schneller der ball. hab ihr ne idee wie man das viell. geschikter lösen könnte? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206982/objekt-steil-bewegen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 03:38:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206982.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Mar 2008 13:44:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt Steil Bewegen on Sun, 02 Mar 2008 13:48:37 GMT]]></title><description><![CDATA[<p>Hi,</p>
<pre><code class="language-cpp">// bewegen des balles in 360 grad, ausgangspunkt wie im Koordinatensystem
//               |          -    |
//               |        -      |
//               |      -        |
//               |    -          |
//               |  -   \        | 60°
//               |-      \       |
//--------------- -------------------------
//               |
//               |
//               |
//               |
//               |
//
void FallingObject::MoveDegrees ( float Degrees, float Range ){
float Y;
Degrees = 360 - Degrees;
short int ModifierX = 1;
short int ModifierY = 1;
if ( Degrees == 90 ){
        Y = Range;
        Range = 0;
}else if ( Degrees == 180 ){
        Y = 0;
        Range *= -1;
}else if ( Degrees == 270 ){
        Y = Range * -1;
        Range = 0;
}else if ( Degrees == 360 ){
        Y = 0;
}else{
if (( Degrees &gt; 90 ) &amp;&amp; ( Degrees &lt; 180 )){
        Degrees -= 90;
        ModifierX = -1;
}
if (( Degrees &gt; 180 ) &amp;&amp; ( Degrees &lt; 270 )){
        Degrees -= 180;
        ModifierX = -1;
        ModifierY = -1;
}
if (( Degrees &gt; 270 ) &amp;&amp; ( Degrees &lt; 360 )){
        Degrees -= 270;
        ModifierY = -1;
}
        Degrees = Degrees * M_PI/180;
        do{                      // Problemstelle
                if ( Y != 0 ){
                Range++;
                }
                Y =  tan(Degrees)  * Range ;
        }while ( !abs(Y) );// Kann keine koordinaten unter 0 zeichnen
                           // Abs gibt int zurück &lt; 0 = 0
}
Y *= (float)ModifierY;
Range *= (float)ModifierX;
Move(Range,Y);
}
</code></pre>
<p>das is die bewegungsmethode für mein objekt, wie man sieht nach grad.<br />
Nur hab ich jetzt das problem das je steiler die gradzahl ( steil = hohe grad aber != 90,180,270,360 ) desto schneller der ball. hab ihr ne idee wie man das viell. geschikter lösen könnte? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466633</guid><dc:creator><![CDATA[Schurke]]></dc:creator><pubDate>Sun, 02 Mar 2008 13:48:37 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt Steil Bewegen on Sun, 02 Mar 2008 14:04:46 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>So ganz blick ich durch deinen Code nicht durch, das Problem dürfte aber laut Beschreibung im Prinzip stecken. Nehmen wir mal deine Skizze und sagen das dein Objekt die Strecke a pro Zeitintervall zurücklegen soll, unabhängig vom Winkel. Dann ist deine aktuelle Berechnung so</p>
<pre><code>//               |          -    |
//               |    b   -      |
//               |      -        |
//               |    -          |
//               |  -   \        | 60°
//               |-      \       |
//--------------- -------------------------
//               |&lt;-     a     -&gt;|
</code></pre>
<p>Dadurch ergibt sich aber je nach Winkel dann eine höhere effektive Geschwindigkeit pro Zeitintervall, hier durch Strecke b dargestellt!<br />
Du setzt also a der Bewegung auf der X-Achse gleich und berechnest daraus b.</p>
<p>Sondern die Strecke a muß die Strecke sein, die sich nach dem Einrechnen des Winkels ergibt</p>
<pre><code>//               |          -    |
//               |    a   -      |
//               |      -        |
//               |    -          |
//               |  -   \        | 60°
//               |-      \       |
//--------------- -------------------------
//               |               |
</code></pre>
<p>Dann bleibt die effektive Geschwindkeit gleich.<br />
Die Rechnung wäre hier aus a sowohl die Bewgung auf der Y-Achse (sinus) als auch auf der X-Achse (cosinus) zu berechnen.<br />
Siehe auch Vektorrechnung.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466639</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 02 Mar 2008 14:04:46 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt Steil Bewegen on Sun, 02 Mar 2008 14:08:18 GMT]]></title><description><![CDATA[<blockquote>
<p>Sondern die Strecke x muß die Strecke sein, die sich nach dem Einrechnen des Winkels ergibt</p>
</blockquote>
<p>Einrechnen in was? Die gesammtstrecke gibts noch garnicht ^^'' ( wirds auch nie geben )</p>
<p>Aber hört sich ja ganz nett an aber sagen wir mal.</p>
<p>es prallt auf die wand auf. er macht eingangs = ausgangswinkel und wir haben z.B. 89 grad dann sag ich X is 1 und Y? naja das wäre dann ja ziemlich klein. und da lag das problem das ich vorher hatte. wenn X ne gewisse grenze unterschreitet kann ers nicht zeichnen weil die koordinaten sich unter 0 verändern. und die zeichenmethoden wollen alle int.</p>
<p>PS: ich mochte die x,y version mehr ^^</p>
<blockquote>
<p>Die Rechnung wäre hier aus a sowohl die Bewgung auf der Y-Achse (sinus) als auch auf der X-Achse (cosinus) zu berechnen.<br />
Siehe auch Vektorrechnung.</p>
</blockquote>
<p>Wie Jetzt?^^''</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466655</guid><dc:creator><![CDATA[Schurke]]></dc:creator><pubDate>Sun, 02 Mar 2008 14:08:18 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt Steil Bewegen on Sun, 02 Mar 2008 14:10:47 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Schurke schrieb:</p>
<blockquote>
<blockquote>
<p>Sondern die Strecke x muß die Strecke sein, die sich nach dem Einrechnen des Winkels ergibt</p>
</blockquote>
<p>Einrechnen in was? Die gesammtstrecke gibts noch garnicht ^^'' ( wirds auch nie geben )</p>
</blockquote>
<p>Alles rein gedanklich. Du must eben trennen zwischen drei Werten :<br />
- Der Geschwindigkeit (Änderung der Position) auf der X-Achse<br />
- Der Geschwindigkeit auf der Y-Achse<br />
- Der effektiven Geschwindigkeit a, gegebenen durch Satz des Pythagoras aus X und Y<br />
(Deshalb auch die nachträgliche Umbenennung)<br />
Nun siehst du welche Werte variabel sind (X,Y) und welche fix (a).</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466659</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 02 Mar 2008 14:10:47 GMT</pubDate></item></channel></rss>