<?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[Orientierung eines 3Ecks]]></title><description><![CDATA[<p>Guten Morgen Jungs,<br />
hab da mal ne Frage. Gibts in c++ n einfachen Aufruf mit dem man bestimmen kann, ob ein 3Eck bestehend aus segmenten (segment = Anfang und Endpunkt) Im- oder Gegen den Uhrzeigersinn orientiert ist.</p>
<p>Mit freundlichen Grüßen,<br />
82kolu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295805/orientierung-eines-3ecks</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 07:28:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295805.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Nov 2011 08:04:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:04:06 GMT]]></title><description><![CDATA[<p>Guten Morgen Jungs,<br />
hab da mal ne Frage. Gibts in c++ n einfachen Aufruf mit dem man bestimmen kann, ob ein 3Eck bestehend aus segmenten (segment = Anfang und Endpunkt) Im- oder Gegen den Uhrzeigersinn orientiert ist.</p>
<p>Mit freundlichen Grüßen,<br />
82kolu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147265</guid><dc:creator><![CDATA[82kolu]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:19:29 GMT]]></title><description><![CDATA[<p>Also C++ kennt erstens von Haus aus keine Dreiecke. Gibt externe libraries, die Dreiecke kennen.</p>
<p>Was meinst du mit Orientierung im Uhrzeigersinnn bzw. Gegenuhrzeigersinn? Wie soll ein Dreieck orientiert sein?</p>
<p>*Edit<br />
Meinst du mit Orientierung in welcher Reihenfolge die Segmente gegeben sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147270</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:19:29 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:21:52 GMT]]></title><description><![CDATA[<p>Nein, zumindest nicht im Standard, aber vielleicht kannst du mir erklären, wie ein Dreieck eine Orientierung haben kann. Mit dem Dreieck ist in dem Fall wie mit einem Kreis: er hat keine Orientierung, es sei denn du definierst Referenz- bzw. Bezugspunkte. Das hat dann aber wiederum nichts mit dem Uhrzeigersinn zu tun, denn damit gibst du die Drehrichtung an. Dreht sich dein Dreieck? Zweite Frage: mit Segmenten meinst du die Dreiecksseiten?</p>
<p>Grüße,<br />
Rew.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147272</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:21:53 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<p>*Edit<br />
Meinst du mit Orientierung in welcher Reihenfolge die Segmente gegeben sind?</p>
</blockquote>
<p>Genau das mein ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147273</guid><dc:creator><![CDATA[82kolu]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:21:53 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:28:49 GMT]]></title><description><![CDATA[<p>Ich weiss zwar nicht wofuer du es brauchst und wie man das am effizientesten feststellen kann, aber hier mal ein Ansatz:</p>
<p>Du nimmst das erste Segment und stellst dir das Segment mit einer Richtung vor (Anfangspunkt zu Endpunkt). Du schaust nun also in die Richtung des Segments und denkst dir, es sei eine Gerade. Wenn du das naechste Segment links von der Gerade ist, so drehst du dich im Gegenuhrzeiger sind. Andernfalls im Uhrzeigersinn.<br />
Und dann halt nochmals fuer das naechste Segment.</p>
<p>Damit das klappt muessen die Segmente entsprechend gespeichert sein. Das oben muesstest du nochmals klar durchdenken. Sollte nur eine Idee sein, wie man das vielleicht machen koennnte. Keine Ahnung, ob es einfacher geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147274</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:28:49 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:46:34 GMT]]></title><description><![CDATA[<p>Ich nehme mal 2D Punkte und 2D Vektoren an.</p>
<p>Die &quot;Orientierung&quot; kannst Du über die Determinante der 2x2 Matrix berechnen, die sich durch zwei Punktdifferenzen ergibt:</p>
<pre><code>| punkt2x-punkt1x   punkt3x-punkt2x |    | a  b |
|                                   | =: |      |
| punkt2y-punkt1y   punkt3y-punkt2y |    | c  d |
</code></pre>
<p>Die Determinante davon ist a*d-b*c. Das Vorzeichen sagt Dir, ob die Punkte 1,2,3 nun im oder gegen den Uhrzeigersinn laufen. Wenn ich mich jetzt nicht vertan habe und wir ein normales Achsensystem aus der Mathematik verwenden (Y-Achse zeigt nach oben), dann sollte eine positive Determinante heißen, dass die Punkte 1,2,3 <em>gegen</em> den Uhrzeiger laufen.</p>
<p>Diese Determinante ist auch äquivalent zum Skalarprodukt zweier Kantenvektoren, wobei der eine aber um 90° gedreht wurde. Damit kann man sich IMHO mit etwas Überlegen leicht erklären, dass das auch wirklich so funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147277</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:46:34 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:45:59 GMT]]></title><description><![CDATA[<p>Meinst du <strong>a</strong>*d-b*c?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147279</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:49:47 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<p>Ich weiss zwar nicht wofuer du es brauchst und wie man das am effizientesten feststellen kann, aber hier mal ein Ansatz:</p>
<p>Du nimmst das erste Segment und stellst dir das Segment mit einer Richtung vor (Anfangspunkt zu Endpunkt). Du schaust nun also in die Richtung des Segments und denkst dir, es sei eine Gerade. Wenn du das naechste Segment links von der Gerade ist, so drehst du dich im Gegenuhrzeiger sind. Andernfalls im Uhrzeigersinn.<br />
Und dann halt nochmals fuer das naechste Segment.</p>
<p>Damit das klappt muessen die Segmente entsprechend gespeichert sein. Das oben muesstest du nochmals klar durchdenken. Sollte nur eine Idee sein, wie man das vielleicht machen koennnte. Keine Ahnung, ob es einfacher geht.</p>
</blockquote>
<p>Ich mein damit das es zu aufwändig ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> keine Missverständnisse... ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147281</guid><dc:creator><![CDATA[82kolu]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:49:47 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:48:33 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Ich nehme mal 2D Punkte und 2D Vektoren an.</p>
<p>Die &quot;Orientierung&quot; kannst Du über die Determinante der 2x2 Matrix berechnen, die sich durch zwei Punktdifferenzen ergibt:</p>
<pre><code>| punkt2x-punkt1x   punkt3x-punkt2x |    | a  b |
|                                   | =: |      |
| punkt2y-punkt1y   punkt3y-punkt2y |    | c  d |
</code></pre>
<p>Die Determinante davon ist a*d-b*c. Das Vorzeichen sagt Dir, ob die Punkte 1,2,3 nun im oder gegen den Uhrzeigersinn laufen. Wenn ich mich jetzt nicht vertan habe und wir ein normales Achsensystem aus der Mathematik verwenden (Y-Achse zeigt nach oben), dann sollte eine positive Determinante heißen, dass die Punkte 1,2,3 <em>gegen</em> den Uhrzeiger laufen.</p>
<p>Diese Determinante ist auch äquivalent zum Skalarprodukt zweier Kantenvektoren, wobei der eine aber um 90° gedreht wurde. Damit kann man sich IMHO mit etwas Überlegen leicht erklären, dass das auch wirklich so funktioniert.</p>
</blockquote>
<p>ah cool wenn des geht des wär super. wo hast du die formel gefunden? oder kanntest du die?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147282</guid><dc:creator><![CDATA[82kolu]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:48:33 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 08:58:20 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<p>[...] Du schaust nun also in die Richtung des Segments und denkst dir, es sei eine Gerade. Wenn du das naechste Segment links von der Gerade ist, so drehst du dich im Gegenuhrzeiger sind. Andernfalls im Uhrzeigersinn. [...]</p>
</blockquote>
<p>Auf welcher Seite der dritte Punkt ist, würde man über ein Skalarprodukt berechnen.</p>
<pre><code>| v'
             | 
        v    |
    2 *&lt;-----+-----* 1
             |
             |
             V

         *
         3
</code></pre>
<p>wobei v' eine um 90° gedrehte Version von v ist. Ist nun dot(v',punkt3-punkt2)&gt;0 liegt der 3. Punkt links von der Kante v wenn man von 1 nach 2 schaut. &quot;dot&quot; soll hier das Skalarprodukt sein.</p>
<p>90°-Rotation + Skalarprodukt ist aber genau das, was man mit der Determinante a*d-b*c berechnet, wie ich das vorher erklärt habe.</p>
<p>82kolu schrieb:</p>
<blockquote>
<p>ah cool wenn des geht des wär super. wo hast du die formel gefunden? oder kanntest du die?</p>
</blockquote>
<p>Ich wusste das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147284</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 22 Nov 2011 08:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 09:32:59 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Ich wusste das.</p>
</blockquote>
<p>Cool danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147295</guid><dc:creator><![CDATA[82kolu]]></dc:creator><pubDate>Tue, 22 Nov 2011 09:32:59 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 12:07:30 GMT]]></title><description><![CDATA[<p>Also der Standard liefert schon ein wenig Unterstützung.<br />
Wenn man sich ein wenig mit dem mathematischen Hintergrund auskennt, so kann man die komplexen Zahlen dafür verwenden. Seien a, b und c die Eckpunkte und ax, ay, bx, by, cx und cy die Koordinaten dieser Punkte, so kann man schreiben</p>
<pre><code class="language-cpp">complex&lt; double &gt; a(ax,ay);
    complex&lt; double &gt; b(bx,by);
    complex&lt; double &gt; c(cx,cy);
    if( imag(conj(b-a)*(c-a)) &gt; 0.0 )
    {
        // Drehsinn math. positiv bzw. Gegenuhrzeigersinn
</code></pre>
<p>das ganze erfordert natürlich ein #include &lt;complex&gt;.<br />
Wenn Du nur wenige Dreiecke hast, so kannst Du es so machen. Wenn es mehrere 10000 sind, ist die Lösung von krümelkacker performanter.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147330</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 22 Nov 2011 12:07:30 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 13:23:34 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Also der Standard liefert schon ein wenig Unterstützung.<br />
Wenn man sich ein wenig mit dem mathematischen Hintergrund auskennt, so kann man die komplexen Zahlen dafür verwenden. Seien a, b und c die Eckpunkte und ax, ay, bx, by, cx und cy die Koordinaten dieser Punkte, so kann man schreiben</p>
<pre><code class="language-cpp">complex&lt; double &gt; a(ax,ay);
    complex&lt; double &gt; b(bx,by);
    complex&lt; double &gt; c(cx,cy);
    if( imag(conj(b-a)*(c-a)) &gt; 0.0 )
    {
        // Drehsinn math. positiv bzw. Gegenuhrzeigersinn
</code></pre>
<p>das ganze erfordert natürlich ein #include &lt;complex&gt;.<br />
Wenn Du nur wenige Dreiecke hast, so kannst Du es so machen. Wenn es mehrere 10000 sind, ist die Lösung von krümelkacker performanter.</p>
<p>Gruß<br />
Werner</p>
</blockquote>
<p>Kannst du das nochmal ausführlicher erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147342</guid><dc:creator><![CDATA[82kolu]]></dc:creator><pubDate>Tue, 22 Nov 2011 13:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 14:37:48 GMT]]></title><description><![CDATA[<p>Oje - das habe ich jetzt wieder davon <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="😉"
    /><br />
Ich weiß jetzt nicht wo ich da anfangen soll. Kannst Du zwei komplexe Zahlen mit einander multiplizieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147356</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 22 Nov 2011 14:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to Orientierung eines 3Ecks on Tue, 22 Nov 2011 15:17:14 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>Oje - das habe ich jetzt wieder davon <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="😉"
    /><br />
Ich weiß jetzt nicht wo ich da anfangen soll. Kannst Du zwei komplexe Zahlen mit einander multiplizieren?</p>
</blockquote>
<p>Oh sorry hab deine gegenfrage nicht gesehen... habs jetzt schon auf die andere art implementiert... aber danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147376</guid><dc:creator><![CDATA[82kolu]]></dc:creator><pubDate>Tue, 22 Nov 2011 15:17:14 GMT</pubDate></item></channel></rss>