<?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[Winkelfunktionen in C++ als Algorithmus implementieren]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich bin C++ - Anfänger und will mir für die Berechnung des DOL (Distance of Lead) ein kleines Konsolentool basteln (auch zu Übungszwecken).</p>
<p>Die DOL ist eine Entfernung in der Luftfahrt. Sie gibt an, wie weit der Pilot von einem Flugzeug vor dem Erreichen eines Navigations - Funkfeuers vom Kurs zu eben diesem abdrehen muss, um im harmonischen Kurvenflug nach etwa wieder eben dieser Distanz vom Funkfeuer aus gemessen auf den Flugweg zu kommen, den er NACH dem besagten Funkfeuer einnehmen will. Das ist Strecken - sparsamer als über das Funkfeuer zu fliegen, dann parallel zum neuen Abflugkurs zu reisen und dann nach einiger Zeit den gewünschten Abflugkurs &quot;anzuschneiden&quot;.</p>
<p>Eine geometrische Herleitung liefert folgende Beziehung</p>
<p>DOL = (((GS/30)*sin(beta/2)/(2*pi))/(cos(beta/2)), Ergebniseinheit sei NM (nautische Meilen).</p>
<p>Info: GS ist die Abkürzung für wahre Geschwindigkeit über Grund, der Wert sei gegeben und bekannt. beta sei der kleinere Winkel, der eingeschlossen wird von zwei Radien von der Flugkurve zwischen Ab- und Anflug, die senkrecht auf An- und Abflugsteuerkurs stehen. Er sei auch bekannt und gegeben.</p>
<p>Spezialfälle, wo der Ab/Anflugkurs vs. An/Abflugkurs diesseits / jenseits von dem Wechsel von 359° ... 360° ... 0° ... 001° liegen, sollen NOCH net berücksichtigt werden.</p>
<p>Lt. meinem Buch &quot;jetzt lerne ich C++&quot; von Markt + Technik kann man generisch in C++ nur div mod / * + - Operationen ausführen. Gestern habe ich schon mal potenzieren von ints mit ganzen Basen / Exp. realisiert, aber aus nem Mathestudium dünkt mir noch dunkel dass man sin, cos, etc. Fkt. generisch nur über komplexe Potenzreihenentwicklungen (!!) basteln kann.</p>
<p>Stimmt das? Wie &quot;trigonometrisiere&quot; ich in C++?</p>
<p>Mich interessiert nur der Algo, nicht das komplette Prog mit iostream using namespace blabla syntaxkrams drumherum, das mache ich schon.</p>
<p>THX im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173924/winkelfunktionen-in-c-als-algorithmus-implementieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 10:31:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173924.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Feb 2007 10:45:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Winkelfunktionen in C++ als Algorithmus implementieren on Wed, 21 Feb 2007 10:45:20 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich bin C++ - Anfänger und will mir für die Berechnung des DOL (Distance of Lead) ein kleines Konsolentool basteln (auch zu Übungszwecken).</p>
<p>Die DOL ist eine Entfernung in der Luftfahrt. Sie gibt an, wie weit der Pilot von einem Flugzeug vor dem Erreichen eines Navigations - Funkfeuers vom Kurs zu eben diesem abdrehen muss, um im harmonischen Kurvenflug nach etwa wieder eben dieser Distanz vom Funkfeuer aus gemessen auf den Flugweg zu kommen, den er NACH dem besagten Funkfeuer einnehmen will. Das ist Strecken - sparsamer als über das Funkfeuer zu fliegen, dann parallel zum neuen Abflugkurs zu reisen und dann nach einiger Zeit den gewünschten Abflugkurs &quot;anzuschneiden&quot;.</p>
<p>Eine geometrische Herleitung liefert folgende Beziehung</p>
<p>DOL = (((GS/30)*sin(beta/2)/(2*pi))/(cos(beta/2)), Ergebniseinheit sei NM (nautische Meilen).</p>
<p>Info: GS ist die Abkürzung für wahre Geschwindigkeit über Grund, der Wert sei gegeben und bekannt. beta sei der kleinere Winkel, der eingeschlossen wird von zwei Radien von der Flugkurve zwischen Ab- und Anflug, die senkrecht auf An- und Abflugsteuerkurs stehen. Er sei auch bekannt und gegeben.</p>
<p>Spezialfälle, wo der Ab/Anflugkurs vs. An/Abflugkurs diesseits / jenseits von dem Wechsel von 359° ... 360° ... 0° ... 001° liegen, sollen NOCH net berücksichtigt werden.</p>
<p>Lt. meinem Buch &quot;jetzt lerne ich C++&quot; von Markt + Technik kann man generisch in C++ nur div mod / * + - Operationen ausführen. Gestern habe ich schon mal potenzieren von ints mit ganzen Basen / Exp. realisiert, aber aus nem Mathestudium dünkt mir noch dunkel dass man sin, cos, etc. Fkt. generisch nur über komplexe Potenzreihenentwicklungen (!!) basteln kann.</p>
<p>Stimmt das? Wie &quot;trigonometrisiere&quot; ich in C++?</p>
<p>Mich interessiert nur der Algo, nicht das komplette Prog mit iostream using namespace blabla syntaxkrams drumherum, das mache ich schon.</p>
<p>THX im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232467</guid><dc:creator><![CDATA[kasimirle]]></dc:creator><pubDate>Wed, 21 Feb 2007 10:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to Winkelfunktionen in C++ als Algorithmus implementieren on Wed, 21 Feb 2007 10:54:35 GMT]]></title><description><![CDATA[<p>Wieso willst du da überhaupt generisch lösen. Es reicht, wenn du deine Winkel als double speicherst und an die Funktionen de &lt;cmath&gt; verfütterst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232473</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 21 Feb 2007 10:54:35 GMT</pubDate></item><item><title><![CDATA[Reply to Winkelfunktionen in C++ als Algorithmus implementieren on Wed, 21 Feb 2007 10:56:04 GMT]]></title><description><![CDATA[<p>kasimirle schrieb:</p>
<blockquote>
<p>Mich interessiert nur der Algo, nicht das komplette Prog mit iostream using namespace blabla syntaxkrams drumherum, das mache ich schon.</p>
</blockquote>
<p>Heißt das, dich interessiert auch nicht die Implementierung von Sinus/Cosinus?<br />
Wenn dem so ist: binde &lt;cmath&gt; ein und du hast alles, was du brauchst. Den Rest sollte Google liefern. <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>Wem allerdings nicht so ist, dann wirds allerdings etwas komplexer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232475</guid><dc:creator><![CDATA[viande]]></dc:creator><pubDate>Wed, 21 Feb 2007 10:56:04 GMT</pubDate></item><item><title><![CDATA[Reply to Winkelfunktionen in C++ als Algorithmus implementieren on Wed, 21 Feb 2007 10:59:08 GMT]]></title><description><![CDATA[<p>Dafür gibts bereits fertige Funktionen in der Standartbibliothek.<br />
<a href="http://www.cplusplus.com/reference/clibrary/cmath/sin.html" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cmath/sin.html</a></p>
<p>Einfach cmath includen und dann eventuell dem Linker noch die option<br />
-lm mitgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232480</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Wed, 21 Feb 2007 10:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to Winkelfunktionen in C++ als Algorithmus implementieren on Wed, 21 Feb 2007 11:26:30 GMT]]></title><description><![CDATA[<p>Aus nem Mathestudium solltest du aber wissen, wie man Sinus &amp; Co. berechnet!</p>
<pre><code class="language-cpp">// Sinus berechnen
double Sinus(double x, int j)
{
	double Value = 1;

	for (int k = j - 1; k &gt;= 0; --k)
		Value = 1 - (x * x) / (((2 * k) + 2) * ((2 * k) + 3)) * Value;

	return (x * Value);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1232500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232500</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 21 Feb 2007 11:26:30 GMT</pubDate></item><item><title><![CDATA[Reply to Winkelfunktionen in C++ als Algorithmus implementieren on Wed, 21 Feb 2007 13:51:05 GMT]]></title><description><![CDATA[<p>kasimirle schrieb:</p>
<blockquote>
<p>DOL = (((GS/30)*sin(beta/2)/(2*pi))/(cos(beta/2)), Ergebniseinheit sei NM (nautische Meilen).</p>
</blockquote>
<p>Das kann man noch vereinfachen zu<br />
DOL = \frac{GS\*tan(\frac{\beta}{2})}{60\*\pi}</p>
<p>außerdem bin ich der Meinung, dass die Geschwindigkeit mit dem Quadrat eingehen muss. Wenn man Beispiele mit 200kn und 400kn rechnet, dann kommt im zweiten Fall kein 'harmonischer Kurvenflug' mehr raus.</p>
<p>kasimirle schrieb:</p>
<blockquote>
<p>beta sei der kleinere Winkel, der eingeschlossen wird von zwei Radien von der Flugkurve zwischen Ab- und Anflug, die senkrecht auf An- und Abflugsteuerkurs stehen. Er sei auch bekannt und gegeben.</p>
<p>Spezialfälle, wo der Ab/Anflugkurs vs. An/Abflugkurs diesseits / jenseits von dem Wechsel von 359° ... 360° ... 0° ... 001° liegen, sollen NOCH net berücksichtigt werden.</p>
</blockquote>
<p>wenn, dann schreib' Dir am besten eine eigene kleine Winkel-Klasse mit Subtraktion und Division durch einen Faktor - lohnt sich immer.</p>
<p>kasimirle schrieb:</p>
<blockquote>
<p>Lt. meinem Buch &quot;jetzt lerne ich C++&quot; von Markt + Technik kann man generisch in C++ nur div mod / * + - Operationen ausführen. Gestern habe ich schon mal potenzieren von ints mit ganzen Basen / Exp. realisiert, aber aus nem Mathestudium dünkt mir noch dunkel dass man sin, cos, etc. Fkt. generisch nur über komplexe Potenzreihenentwicklungen (!!) basteln kann.</p>
<p>Stimmt das? Wie &quot;trigonometrisiere&quot; ich in C++?</p>
</blockquote>
<p>brauchst Du nicht. Die anderen haben es schon erwähnt. Du musst aber berücksichtigen, dass bei den trigonometrischen Funktionen die Winkel im Bogenmaß angegeben werden müssen. Etwa so:</p>
<pre><code class="language-cpp">#include &lt;cmath&gt;
    // ...
    double winkel_in_grad = 30.0; // 30 Grad
    const double PI = std::acos( -1.0 );
    const double GRAD2RAD = PI / 180.0;
    double tan_winkel = std::tan( winkel_in_grad * GRAD2RAD );
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232617</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 21 Feb 2007 13:51:05 GMT</pubDate></item></channel></rss>