الوحدة هو محرك لعبة شعبية تستخدم لإنشاء الألعاب والتطبيقات التفاعلية وجذابة بصريا. واحدة من السمات الهامة للوحدة هي القدرة على العمل مع الرسومات ثلاثية الأبعاد والمتجهات. يمكن أن يكون ضبط المتجهات وتدويرها مفيدا لإنشاء الرسوم المتحركة والرسومات المتجهة والتحكم في كائنات اللعبة. في هذه المقالة ، سننظر في كيفية تدوير متجه بزاوية في الوحدة باستخدام الأدوات والوظائف المتاحة للمحرك.
في الوحدة ، يتم استخدام هيكل المتجه 3 للعمل مع المتجهات ، والتي تمثل متجها ثلاثي الأبعاد. يحتوي هذا المتجه على ثلاثة محاور-س ، ص و ض ، والتي يمكن استخدامها للإشارة إلى اتجاه وموقع الكائنات في المشهد. لتدوير متجه بزاوية في الوحدة ، يمكنك استخدام دالة الرباعية.أويلر ، والذي يسمح لك بتعيين زاوية الدوران حول كل محور بالدرجات.
قبل تدوير المتجه ، من الضروري تحديد المحور والزاوية المراد تدويرها. يمكن تحديد المحور باستخدام س, ص, و ض القيم. يتم تعيين الزاوية بالدرجات. تستخدم الوحدة قاعدة اليد اليمنى لتحديد اتجاه المحور والاتجاه الإيجابي للدوران. إذا كان من الضروري تدوير المتجه في الاتجاه المعاكس ، فيجب أن تكون الزاوية سالبة.
مثال: لنفترض أن لدينا متجها بإحداثيات (1 ، 0 ، 0) يقع على طول المحور س. لتدوير هذا المتجه 90 درجة حول المحور ص ، يمكننا استخدام الرباعي.أويلر (0 ، 90 ، 0) وظيفة.
- تحديد زاوية دوران المتجه في الوحدة
- أدوات دوران ناقلات جاهزة في الوحدة
- الحساب اليدوي لزاوية دوران المتجه في الوحدة
- سؤال وجواب
- كيف يمكنني تدوير متجه بزاوية معينة في الوحدة?
- ما الحجج لا' الرباعية ' طريقة اتخاذ?أنجليكسيس?
- هل من الممكن لتدوير ناقلات حول محاور متعددة?
- كيف يمكنني تدوير متجه حول نقطة في الوحدة?
تحديد زاوية دوران المتجه في الوحدة
عند تطوير الألعاب في الوحدة ، فإن أحد الجوانب المهمة هو التحكم في دوران الكائن. يمثل المتجه الاتجاه والمسافة من نقطة إلى أخرى. في الوحدة ، يمكنك بسهولة تدوير متجه بزاوية معينة باستخدام طرق مختلفة.
واحدة من أكثر الطرق شيوعا هي استخدام الرباعية.وظيفة أويلر. تأخذ هذه الوظيفة زوايا الدوران حول س, ص, و ض المحاور ويخلق رباعي يمكن تطبيقه على متجه.
مثال:
متجه3 متجه = متجه جديد3(1 ، 0 ، 0); // متجه المصدر (على المحور س)زاوية تعويم = 45 ؛ / / زاوية لتدوير المتجه بواسطة
دوران رباعي = رباعي.أويلر (0 ، زاوية ، 0) ؛ / / إنشاء رباعي الدوران
المتجه 3 متجه دوار = دوران * متجه ؛ / / دوران متجه
في المثال أعلاه ، يتم تدوير المتجه مع الإحداثيات الأولية (1 ، 0 ، 0) بزاوية 45° حول المحور ص. والنتيجة هي متجه متجه دوار.
إذا كنت بحاجة إلى تدوير المتجه بزاوية حول محور آخر ، فيمكنك تغيير القيم في الرباعي.وظيفة أويلر. على سبيل المثال ، للتدوير حول المحور س ، يمكنك استخدام الكود التالي:
دوران رباعي = رباعي.أويلر (زاوية ، 0 ، 0) ؛ / / دوران حول المحور س
بالإضافة إلى ذلك ، يمكن استخدام طرق أخرى لتحديد زاوية دوران المتجه:
كواترنيون.زاوية (زاوية ، محور) - يدور المتجه بزاوية محددة حول المحور المحدد.
ماثف.ديج2راد (زاوية) - يحول زاوية من درجات إلى راديان.
يعتمد اختيار الطريقة على السياق والنتائج المرجوة لدوران المتجه. من المهم تجربة والعثور على أنسب واحد لحالة معينة.
أدوات دوران ناقلات جاهزة في الوحدة
الوحدة لديها أدوات جاهزة تبسط عملية دوران المتجهات. بعض هذه الأدوات هي:
يقوم هذا الرمز بتدوير المتجه المتجه 90 درجة حول المحور ص.
تحويل.تدوير: تسمح لك هذه الطريقة بتدوير كائن في الفضاء باستخدام زاوية ومحور. يقوم بتدوير الكائن بزاوية معينة حول محور معين. مثال الاستخدام:
- تحويل.تدوير (متجه3.أعلى ، 90 فهرنهايت);
- y
- z
| يقوم هذا الرمز بتدوير الكائن الذي ينتمي إليه التحويل بمقدار 90 درجة حول المحور ص. | تساعد كل هذه الأدوات في تبسيط وأتمتة عملية دوران المتجهات في الوحدة. يمكنك اختيار واحد الذي يناسب احتياجاتك وتفضيلاتك. | ||
|---|---|---|---|
| الحساب اليدوي لزاوية دوران المتجه في الوحدة | في الوحدة ، يمكنك تدوير المتجهات بزاوية معينة باستخدام وظائف وطرق مدمجة. ومع ذلك ، قد يكون من الضروري في بعض الأحيان حساب زاوية دوران المتجه يدويا. في هذا القسم ، سننظر في هذه العملية بمزيد من التفصيل. | بادئ ذي بدء ، دعونا نتخيل متجها في الفضاء ثلاثي الأبعاد. يحتوي المتجه على ثلاثة مكونات (س ، ص ، ض) ويمثل الاتجاه والطول. في الوحدة ، عادة ما يتم تمثيل المتجهات باستخدام المتجه3 هيكل. | لتدوير متجه بزاوية معينة في الوحدة ، يمكننا استخدام مصفوفة الدوران. إنه كائن رياضي يسمح لنا بإجراء عمليات الدوران. |
| لحساب زاوية دوران المتجه يدويا في الوحدة ، اتبع الخطوات التالية: | أوجد المتجه الطبيعي (طول وحدة المتجه) باستخدام الدالة الطبيعية: | المتجه 3 المتجه الطبيعي = المتجه الخاص بك.تطبيع; | أوجد جيب التمام وجيب زاوية الدوران باستخدام الرياضيات.كوس () وماثف.الخطيئة () وظائف: |
| تعويم الأنجليكوزين = ماثف.كوس (زاوية); | تعويم الزاوية = ماثف.الخطيئة (زاوية); | قم بإنشاء مصفوفة دوران باستخدام جيب التمام والجيب الموجود: | x |
x
انجليكوزين + طبيعةالمتجه.س * تطبيعمتجه.x * (1 — angleCosine)
normalizedVector.x * normalizedVector.y * (1 — angleCosine) — normalizedVector.z * angleSine
normalizedVector.x * normalizedVector.z * (1 — angleCosine) + normalizedVector.y * angleSine
y
normalizedVector.y * normalizedVector.x * (1 — angleCosine) + normalizedVector.z * angleSine
angleCosine + normalizedVector.y * normalizedVector.y * (1 — angleCosine)
normalizedVector.y * normalizedVector.z * (1 — angleCosine) — normalizedVector.x * angleSine
z
normalizedVector.z * normalizedVector.x * (1 — angleCosine) — normalizedVector.y * angleSine