<?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[OpenGl glRotated - Problem]]></title><description><![CDATA[<p>Hallo hoffe jemand kann mir bei meinem Problem weiterhelfen.</p>
<p>Ich habe ein Projekt das Opengl und glfw nutzt.<br />
Eins meiner erstellten Objekte drehe ich mit glRotated wie zu erwarten funktioniert meine Kollisionserkennung nun nicht mehr an der neuen Stelle wo das Objekt angezeigt wird sondern an der alten Position. Und genau dabei liegt mein Problem mir ist im Moment nicht klar wie ich meine Punkte genauso wie das Objekt rotieren kann. Bietet OpenGl oder auch glfw eine Funktion dafür ?</p>
<p>Hier der code wie wir das Objekt drehen</p>
<pre><code>[code]
// Zeichnen des Würfels
void Cube::DrawCube() {

   glPushMatrix();
    glTranslatef(posX, posY, posZ);
      glRotated(rotX, 1, 0, 0);
      glRotated(rotY, 0, 1, 0);// Rotation um die Y Achse
      glRotated(rotZ, 0 ,0 ,1);
      glBegin(GL_QUADS);
      //ground
      glNormal3f(0.0, 0.0, cubeSize);

      glVertex3f(-cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, cubeSize+posZ);

      //Bande left

      glNormal3f(-cubeSize, 0.0, 0.0);

      glVertex3f(-cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(-cubeSize+posX, cubeSize, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, -cubeSize+posZ);

      //Bande right
      glNormal3f(0.0, 0.0, -cubeSize);

      glVertex3f(cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, cubeSize+posZ);

      //Bande front
      glNormal3f(-cubeSize, 0.0, 0.0);

      glVertex3f(-cubeSize+posX, cubeSize, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, cubeSize+posZ);

      //Bande back
      glNormal3f(-cubeSize, 0.0, 0.0);

      glVertex3f(-cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, -cubeSize+posZ);

      //top
      glNormal3f(0.0, 0.0, -cubeSize);

      glVertex3f(-cubeSize+posX, cubeSize, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, cubeSize+posZ);
      glEnd();

    glPopMatrix();

}
</code></pre>
<p>Schon mal viele Dank für eventuelle Ansätze</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326651/opengl-glrotated-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 31 May 2026 02:37:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326651.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 29 Jun 2014 10:11:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OpenGl glRotated - Problem on Sun, 29 Jun 2014 10:11:47 GMT]]></title><description><![CDATA[<p>Hallo hoffe jemand kann mir bei meinem Problem weiterhelfen.</p>
<p>Ich habe ein Projekt das Opengl und glfw nutzt.<br />
Eins meiner erstellten Objekte drehe ich mit glRotated wie zu erwarten funktioniert meine Kollisionserkennung nun nicht mehr an der neuen Stelle wo das Objekt angezeigt wird sondern an der alten Position. Und genau dabei liegt mein Problem mir ist im Moment nicht klar wie ich meine Punkte genauso wie das Objekt rotieren kann. Bietet OpenGl oder auch glfw eine Funktion dafür ?</p>
<p>Hier der code wie wir das Objekt drehen</p>
<pre><code>[code]
// Zeichnen des Würfels
void Cube::DrawCube() {

   glPushMatrix();
    glTranslatef(posX, posY, posZ);
      glRotated(rotX, 1, 0, 0);
      glRotated(rotY, 0, 1, 0);// Rotation um die Y Achse
      glRotated(rotZ, 0 ,0 ,1);
      glBegin(GL_QUADS);
      //ground
      glNormal3f(0.0, 0.0, cubeSize);

      glVertex3f(-cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, cubeSize+posZ);

      //Bande left

      glNormal3f(-cubeSize, 0.0, 0.0);

      glVertex3f(-cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(-cubeSize+posX, cubeSize, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, -cubeSize+posZ);

      //Bande right
      glNormal3f(0.0, 0.0, -cubeSize);

      glVertex3f(cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, cubeSize+posZ);

      //Bande front
      glNormal3f(-cubeSize, 0.0, 0.0);

      glVertex3f(-cubeSize+posX, cubeSize, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, cubeSize+posZ);

      //Bande back
      glNormal3f(-cubeSize, 0.0, 0.0);

      glVertex3f(-cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(-cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, 0, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, -cubeSize+posZ);

      //top
      glNormal3f(0.0, 0.0, -cubeSize);

      glVertex3f(-cubeSize+posX, cubeSize, cubeSize+posZ);
      glVertex3f(-cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, -cubeSize+posZ);
      glVertex3f(cubeSize+posX, cubeSize, cubeSize+posZ);
      glEnd();

    glPopMatrix();

}
</code></pre>
<p>Schon mal viele Dank für eventuelle Ansätze</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2406158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2406158</guid><dc:creator><![CDATA[pluspluscoder]]></dc:creator><pubDate>Sun, 29 Jun 2014 10:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to OpenGl glRotated - Problem on Sun, 29 Jun 2014 10:23:51 GMT]]></title><description><![CDATA[<p>Spiellogik ist nicht die Aufgabe von OpenGL. Ich würde an deiner Stelle manuell die Transformation CPU-seitig durchführen und die Resultate für Kollisionen verwenden. Anschliessend könntest du sogar die Matrizen auf die Grafikkarte laden.</p>
<p>Hat aber nichts mit C++ zu tun -&gt; Spiele-/Grafikprogrammierung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2406159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2406159</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 29 Jun 2014 10:23:51 GMT</pubDate></item><item><title><![CDATA[Reply to OpenGl glRotated - Problem on Sun, 29 Jun 2014 10:29:46 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Spiellogik ist nicht die Aufgabe von OpenGL. Ich würde an deiner Stelle manuell die Transformation CPU-seitig durchführen und die Resultate für Kollisionen verwenden. Anschliessend könntest du sogar die Matrizen auf die Grafikkarte laden.</p>
<p>Hat aber nichts mit C++ zu tun -&gt; Spiele-/Grafikprogrammierung</p>
</blockquote>
<p>Was genau meinst du mit der manuellen Transformation? Ich war am überlegen die Werte mit einer Rotationsmatrix zu multiplizieren nur leider weiß ich im Moment nicht wie ich eine Rotationsmatrix bekomme die quasi die gleichen Ergebnisse liefert wie glrotated.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2406160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2406160</guid><dc:creator><![CDATA[pluspluscoder]]></dc:creator><pubDate>Sun, 29 Jun 2014 10:29:46 GMT</pubDate></item><item><title><![CDATA[Reply to OpenGl glRotated - Problem on Sun, 29 Jun 2014 10:52:55 GMT]]></title><description><![CDATA[<p>Dann solltest du dich in Lineare Algebra einlesen, gewisse mathematische Kenntnisse sind in der Spieleentwicklung notwendig.</p>
<p>Du kannst natürlich eine der vielen Matrixbibliotheken für C++ benutzen, z.B. glm, Eigen, ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2406162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2406162</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 29 Jun 2014 10:52:55 GMT</pubDate></item></channel></rss>