سؤال

لدي كائن تم تحميله كنسيج وأحتاج إلى تحريكه، مما يسمح له "بالتوجه" إلى اليسار أو اليمين - في بعض الأحيان أحتاج إلى "قلبه".أعلم أن برنامج OpenGL يحتوي على gltranslate الذي يعيد وضع الكائن، وglrotate الذي يقوم بتدويره.هل هناك طريقة تقلبها ببساطة عبر محور واحد؟إذا لم يكن الأمر كذلك، كيف يمكنك تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

لم أعبث مع الكائنات النقطية، لكنني أعتقد أنها نسيج.تحتوي القوام على مصفوفات نسيج، مما يعني أنه يمكنك استخدامها glTranslatef(), glScalef() و glRotatef() عليهم.

سأحاول تجربة شيء على غرار glScalef(-1,1,1); والذي من شأنه أن يقلب تنسيق النسيج بواسطة المحور X.

كما قلت، لم ألعب مع النقوش المتحركة، لكنني لم أعبث بمصفوفات النسيج أيضًا.ومع ذلك، فإنها تبدو مفيدة جدًا.

تحديث: لقد لعبت مع مصفوفات النسيج في هذه الأثناء.بنفس الطريقة التي تقوم بها بالتبديل بين عرض النموذج ومصفوفات الإسقاط، يمكنك التبديل إلى مصفوفة النسيج؛تقريبًا: glMatrixMode(GL_TEXTURE); وبعد ذلك يمكنك القيام بالعمليات المذكورة أعلاه.

يمكنك أيضًا رسم مثلث رباعي أو مثلثين والانتهاء منه :)

نصائح أخرى

لا يمكنك القيام بذلك باستخدام النقطات النقطية لبرنامج OpenGL؛على الرغم من أنه يمكنك تحريك مركز الكائن، إلا أن شكله دائمًا ما يكون موجهًا بنفس الطريقة.

ما لك يستطيع ما عليك فعله هو رسم النقوش المتحركة على هيئة رباعيات، مما يتيح لك قلبها وتدويرها والتلاعب بها بأي طريقة تريدها.توجد برامج تعليمية حول رسم النقوش المتحركة (المعروفة أيضًا باسم اللوحات الإعلانية) يدويًا نيه

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top