<?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[Bewegung auf Koordinaten in 10° bzw. 20° ...]]></title><description><![CDATA[<p>Hi,</p>
<p>in meinem spiel, was ich bisher schon ein paar mal vorgestellt habe, möchte ich die Move() Funktion erweitern.</p>
<p>Zur zeit sieht sie so aus:</p>
<pre><code class="language-cpp">void ship::Move(int i)
{
  int x = itsKoord.GetX();
  int y = itsKoord.GetY();
  switch(itsRichtung)
  {
    case NORDEN:
    {
      y += i;
      itsKoord.SetY(y);
      break;
    }

    case SUEDEN:
    {
      y -= i;
      itsKoord.SetY(y);
      break;
    }

    case WESTEN:
    {
      x -= i;
      itsKoord.SetX(x);
      break;
    }

    case OSTEN:
    {
      x += i;
      itsKoord.SetX(x);
      break;
    }
  }
}
</code></pre>
<p>ich möchte den Benutzer den Kurs in ° angeben lassen(auf 10° gerundet), also 10°,20°, usw., wobei Norden 0° ist.</p>
<p>Das Problem ist ich weiß nicht wie ich den Zielpunkt im Koordinatensystem Berechnen kann... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>also das ich in der Move() aus dem Kurs in ° und der entfernung des zielpunktes errechnen kann wieviel ich zu X und zu Y addieren muss, wie in Move().</p>
<p>das prob ist zwar eher mathematisch, aber ich hoffe ihr könnt mir trozdem helfen.</p>
<p>Mfg Yazoo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203667/bewegung-auf-koordinaten-in-10-bzw-20</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 02:03:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203667.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Jan 2008 06:06:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 06:07:51 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>in meinem spiel, was ich bisher schon ein paar mal vorgestellt habe, möchte ich die Move() Funktion erweitern.</p>
<p>Zur zeit sieht sie so aus:</p>
<pre><code class="language-cpp">void ship::Move(int i)
{
  int x = itsKoord.GetX();
  int y = itsKoord.GetY();
  switch(itsRichtung)
  {
    case NORDEN:
    {
      y += i;
      itsKoord.SetY(y);
      break;
    }

    case SUEDEN:
    {
      y -= i;
      itsKoord.SetY(y);
      break;
    }

    case WESTEN:
    {
      x -= i;
      itsKoord.SetX(x);
      break;
    }

    case OSTEN:
    {
      x += i;
      itsKoord.SetX(x);
      break;
    }
  }
}
</code></pre>
<p>ich möchte den Benutzer den Kurs in ° angeben lassen(auf 10° gerundet), also 10°,20°, usw., wobei Norden 0° ist.</p>
<p>Das Problem ist ich weiß nicht wie ich den Zielpunkt im Koordinatensystem Berechnen kann... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>also das ich in der Move() aus dem Kurs in ° und der entfernung des zielpunktes errechnen kann wieviel ich zu X und zu Y addieren muss, wie in Move().</p>
<p>das prob ist zwar eher mathematisch, aber ich hoffe ihr könnt mir trozdem helfen.</p>
<p>Mfg Yazoo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443216</guid><dc:creator><![CDATA[Yazoo]]></dc:creator><pubDate>Fri, 25 Jan 2008 06:07:51 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 07:18:44 GMT]]></title><description><![CDATA[<p><a href="http://de.wikipedia.org/wiki/Sinus" rel="nofollow">http://de.wikipedia.org/wiki/Sinus</a></p>
<p>sollte reichen, um den Rest zu berechnen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443224</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Fri, 25 Jan 2008 07:18:44 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 14:20:51 GMT]]></title><description><![CDATA[<p>zwutz schrieb:</p>
<blockquote>
<p><a href="http://de.wikipedia.org/wiki/Sinus" rel="nofollow">http://de.wikipedia.org/wiki/Sinus</a></p>
<p>sollte reichen, um den Rest zu berechnen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>vielen dank, das hat mein prob größtenteils gelöst.</p>
<p>Das einzige übrig gebliebene prob ist: Wie heißt die Funktion für cos bzw. sin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443484</guid><dc:creator><![CDATA[Yazoo]]></dc:creator><pubDate>Fri, 25 Jan 2008 14:20:51 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 14:23:54 GMT]]></title><description><![CDATA[<p>cos bzw. sin in &lt;cmath&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443486</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 25 Jan 2008 14:23:54 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 14:26:20 GMT]]></title><description><![CDATA[<p>thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443490</guid><dc:creator><![CDATA[Yazoo]]></dc:creator><pubDate>Fri, 25 Jan 2008 14:26:20 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 14:26:50 GMT]]></title><description><![CDATA[<p>Wobei die mit radians und nicht degrees arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443491</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 25 Jan 2008 14:26:50 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 14:28:30 GMT]]></title><description><![CDATA[<p>ist das ein problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443492</guid><dc:creator><![CDATA[Yazoo]]></dc:creator><pubDate>Fri, 25 Jan 2008 14:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 14:37:11 GMT]]></title><description><![CDATA[<p>Du musst deine Grad erst in Bogenmaß umwandeln <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">const double pi = 3.1415926535897932384626433832795;
inline double deg_to_rad(double d)
{
    return (d/360)*2*pi;
}
</code></pre>
<p>Bevor du Deine Winkel an die std::sin oder die anderen trigonometrischen Funktionen in C++ übergibst, musst du sie damit einfach umwandeln.</p>
<pre><code class="language-cpp">//Beispiel für 45°
double x = std::cos(deg_to_rad(45));
</code></pre>
<p>Allerdings wäre es sehr ratsam, etwas mit dem ganzen zu warten.<br />
Nachdem man das alles in der Schule durchgenommen hat, fällt es einem viel leichter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Ansonsten ist auch ein Tafelwerk wie dieses sehr sehr hilfreich:<br />
<a href="http://www.amazon.de/Das-gro%C3%9Fe-Tafelwerk-interaktiv-Bundesl%C3%A4nder/dp/3464571440/ref=pd_bbs_sr_1?ie=UTF8&amp;s=gateway&amp;qid=1201271723&amp;sr=8-1" rel="nofollow">http://www.amazon.de/Das-große-Tafelwerk-interaktiv-Bundesländer/dp/3464571440/ref=pd_bbs_sr_1?ie=UTF8&amp;s=gateway&amp;qid=1201271723&amp;sr=8-1</a></p>
<p>(Link bitte kopieren und in den Browser einfügen, Forum hat Probleme mit Umlauten)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443495</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Fri, 25 Jan 2008 14:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Fri, 25 Jan 2008 14:55:36 GMT]]></title><description><![CDATA[<p>Warum nicht return (d/180.0)*pi; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443516</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 25 Jan 2008 14:55:36 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Sat, 26 Jan 2008 12:02:13 GMT]]></title><description><![CDATA[<p>The-Kenny schrieb:</p>
<blockquote>
<pre><code class="language-cpp">const double pi = 3.1415926535897932384626433832795;
</code></pre>
</blockquote>
<p>besser ist:</p>
<pre><code class="language-cpp">const double pi = std::acos(-1.0);  // erfordert #include &lt;cmath&gt;
</code></pre>
<p>das ist erstens immer richtig und zweitens hat es genau die maximale Genauigkeit, die vom System zur Verfügung gestellt wird.</p>
<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Warum nicht return (d/180.0)*pi; ?</p>
</blockquote>
<p>warum nicht</p>
<pre><code class="language-cpp">return d * (pi/180);
</code></pre>
<p>zum einen sollte der Compiler oder spätestens das RunTime-System aus (pi/180) gleich eine Konstante machen, so dass dies nicht jedesmal neu berechnet werden muss und zum anderen verbleibt eine Multiplikation (d*..)statt einer Division (d/180..) die immer schneller ist.</p>
<p>Yazoo schrieb:</p>
<blockquote>
<p>ich möchte den Benutzer den Kurs in ° angeben lassen(auf 10° gerundet), also 10°,20°, usw., wobei Norden 0° ist.</p>
</blockquote>
<p>Verräts Du uns noch, wo dieser Winkel herkommt - ist er das Resultat einer Berechnung oder eine Eingabe?</p>
<p>Ach - und welche Typen haben die X- und Y-Werte Deiner Koordinate? In Deinem ersten Posting scheinen das ints zu sein, jetzt wären aber doubles angebracht.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443935</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sat, 26 Jan 2008 12:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Sun, 27 Jan 2008 06:15:59 GMT]]></title><description><![CDATA[<p>also, ich habe einiges geändert, das prob ist gelöst, aber ich beantworte die fragen trotzdem gerne:</p>
<p>X un Y sind nun double, der Winkel wird vom User eingegeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444312</guid><dc:creator><![CDATA[Yazoo]]></dc:creator><pubDate>Sun, 27 Jan 2008 06:15:59 GMT</pubDate></item><item><title><![CDATA[Reply to Bewegung auf Koordinaten in 10° bzw. 20° ... on Sun, 27 Jan 2008 06:25:25 GMT]]></title><description><![CDATA[<p>meine Move Funktion sieht nun so aus:</p>
<pre><code class="language-cpp">void ship::Move(int i)    // i ist die entfernung
{
  double x = itsKoord.GetX();
  double y = itsKoord.GetY();

  x += std::sin(deg_to_rad(itsRichtung)) * i;        // itsRichtung speichert die Richtung in degrees
  y += std::cos(deg_to_rad(itsRichtung)) * i;

  itsKoord.SetAll(x, y);
}
</code></pre>
<p>schon getestet, funktioniert einwandfrei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444313</guid><dc:creator><![CDATA[Yazoo]]></dc:creator><pubDate>Sun, 27 Jan 2008 06:25:25 GMT</pubDate></item></channel></rss>