Comment faire pour modifier le Centre de Rotation en OpenGL
J'ai un Modèle 3D (OpenGL ES 1.1 SDK de l'iPhone v3.0) qui est un peu complexe (c'est à dire des Milliers de Sommets et de Faces) et j'aimerais faire tourner ce modèle autour de l'axe Y à ou près de centre du Modèle. Le problème est que glRotate tourne mon modèle autour d'un point à/près de la centre de l'un de ses bords inférieurs, PAS près de la centre du Modèle. Imaginer une voiture très serrée des cercles autour d'un peu de post, et c'est essentiellement ce que j'ai. Je veux de la voiture pour être enfilée sur la lumière de la poste et des être mis en rotation autour d'elle. (Un peu de la source ci-dessous)
//BLUE BLOCK----------------------------------------------
glPushMatrix();
{
glTranslatef(blueLocation[0], blueLocation[1], blueLocation[2]);
glRotatef(blueRotAngle, 0.0, 0.0, 1.0);
...
LA QUESTION:
Est-il un moyen FACILE de modifier le Centre de Rotation en OpenGL?
OriginalL'auteur RexOnRoids | 2009-07-15
Vous devez vous connecter pour publier un commentaire.
Sûr. Traduire l'objet vers le bas. De la faire pivoter.
Traduire, de sorte que le point que vous voulez faire pivoter autour de l'origine, puis faites-la pivoter, puis de le traduire à l'emplacement que vous voulez.
que va faire l'orbite de la nouvelle d'origine, pas de rotation autour de "lui-même" (pensez à une année au lieu de la journée).
Traduire >> TOURNER >> Traduire en Arrière TRAVAILLÉ. Merci!
Faire pivoter >> Traduire fonctionné pour moi 🙂 Merci!
OriginalL'auteur Goz
Vous devez utiliser votre modèle d'API pour modifier la modèle origine. Si vous pouviez dire à celle que vous utilisez, peut-être que je pourrais aider un peu plus.
Si vous avez accès à un logiciel qui peut modifier votre modèle, vous pouvez fixer directement dans le fichier de modèle et de supprimer tous les hacks à partir de votre code.
OriginalL'auteur R. Martinho Fernandes
Il est bon de rappeler que toutes les opérations en OpenGL sont effectuées par rapport à l'origine. Vous ne pouvez pas modifier le Centre de Rotation en OpenGL". Vous vous déplacez dans le monde par rapport à celle d'origine.
Accepté réponse est de dire traduire par rapport à l'origine du monde, faire pivoter, puis de le traduire en arrière. Exactement ce que je disais. Si vous ne comprenez pas comment OpenGL fonctionne alors je ne peux pas vous aider.
OriginalL'auteur Henry