‫أهلا ومرحبا.
‫في هذه المحاضرة سنقوم بتقديم وظائف الأعضاء وهذه وظيفة
‫آمنة وطبيعية تسمح لنا بالتعرف على اتجاه ناقل معين.
‫دعونا نتعمق ونرى كيف يعمل هذا.
‫لذا فإن طريقتنا البسيطة لإعادة النظام الأساسي إلى الاتجاه المعاكس تعمل بالسرعات
‫التي اختبرناها بها.
‫ولكن ماذا يحدث إذا قلت ، مرحبًا ، لنجعل هذه المنصة تعمل أسرع بعشر مرات؟
‫دعنا نمضي قدمًا ونلعب ونرى ما سيحدث.
‫حسنًا ، فجأة تقفز هذه المنصات إلى الأمام كثيرًا ولا تحوم حول نفس الموقع كما
‫كانت من قبل.
‫والسبب في ذلك هو أن الموقع الحالي ، عندما قمنا بتعيينه كموقع البداية ، ليس بالضرورة المسافة
‫التي تم نقلها بالضبط ، فقد يكون من الممكن تجاوزه.
‫وهذا ما تم التقاطه هنا في بيان if.
‫نحن نقول أن المسافة التي تم تحريكها أكبر من مسافة الحركة ، مما يعني أننا سوف نتجاوز.
‫يجب أن يكون لدينا تجاوز من أجل تفعيل هذا البيان إذا.
‫لكن السؤال هو إلى أي مدى ، وهذا سيعتمد إلى حد كبير على حجم وقت دلتا.
‫يمكننا التجاوز بكميات كبيرة جدًا ، خاصة إذا كانت سرعة النظام الأساسي كبيرة ، مما يعني
‫أن موقع البداية الخاص بنا قد ينحرف بمرور الوقت.
‫قد لا تبقى ثابتة.
‫لذا فإن أفضل طريقة للقيام بذلك هي حساب المسافة التي نحتاجها للانتقال من موقع البداية الأصلي للوصول
‫إلى الموقع الجديد باستخدام مسافة التحرك الدقيقة.
‫لذلك دعونا نحاول تصور هذا الحساب ذهابًا وإيابًا.
‫نقول أن لدينا منصة في موقع بدايتها هنا.
‫نقول إن لديها سرعة يمكننا تمثيلها بسهم يمثل اتجاهًا وحجمًا ، ولديها أيضًا
‫مسافة نريدها أن تتحرك.
‫سنقوم بتمثيلها فقط من خلال هذه الدعامة هنا.
‫الآن ، ما نقوله هو أننا نرغب في معرفة النقطة الدقيقة التي سيكون فيها النظام الأساسي في النهاية
‫، وليس تجاوزًا ، ولكن بالضبط الموقع النهائي.
‫الآن ، الطريقة التي يمكننا بها القيام بذلك هي اتخاذ اتجاه سهم السرعة.
‫لذلك في لغة المتجهات ، يسمى هذا المستوى الطبيعي للسهم ، وهو في الأساس يأخذه إلى
‫الحجم واحد.
‫لذلك نحصل على الاتجاه ولكن بحجم واحد.
‫يسمح لنا ذلك بمعرفة هذا العدد ، حجم السرعة بشكل أساسي ، ومدى سرعتنا.
‫ثم ما يمكننا فعله هو أن نضرب هذا الاتجاه في مقدار المسافة لدينا لنحصل على سهم
‫يعطينا الحركة الكاملة من موقع البداية إلى الموقع النهائي.
‫بالضبط.
‫لذلك دعونا نلقي نظرة على كيفية القيام بذلك في C ++.
‫ما نبحث عنه هو موقع بداية جديد.
‫لذا دعنا نزيل الطريقة التي نفعل بها هذا حاليًا وسيكون لدينا موقع بداية يساوي ، حسنًا ، ما الذي سيكون
‫مساويًا له؟
‫حسنًا ، سيكون مساويًا ، أولاً وقبل كل شيء ، موقع البداية بالإضافة إلى
‫شيء ما ، لأننا نبدأ من هنا ونضيف هذا المتجه الأخضر للوصول إلى النهاية.
‫إذن ما هو هذا المتجه الأخضر هناك؟
‫حسنًا ، هذا هو المكان الذي نحتاج فيه إلى الحصول على السرعة العادية للمنصة.
‫ولتسهيل فهمنا ، سأقسم ذلك إلى متغير خاص به.
‫لذلك سننشئ متغيرًا جديدًا من النوع F المتجه ، والذي سأسميه اتجاه الحركة ،
‫فقط لتوضيح ما نحاول تخزينه فيه ، ثم سنقوم بذلك احصل على
‫هذا من نقطة سرعة النظام الأساسي ، واحصل على أمان ، وطبيعي ، ثم بعض الأقواس حول النهاية.
‫إذن ما الذي يحدث هنا؟
‫لم نر هذا من قبل.
‫لقد استخدمنا النقطة للحصول على مكونات المتجه ، X و Y و Z.
‫كانت تلك متغيرات.
‫ولكن في C ++ وفي البرمجة الموجهة بالكائنات بشكل عام ، لدينا أيضًا وظائف موجودة في الفئات ، لذلك يمكننا استخدام
‫عامل التشغيل DOT للحصول على أحد هذه الوظائف.
‫لقد استخدمنا القولون القولون عندما كنا نحاول إخراجها من الفصل نفسه.
‫ولكن عندما نريد إجراء عملية باستخدام المتجه الفعلي نفسه ، أي متجه سرعات النظام الأساسي ، يمكننا استخدام
‫عامل التشغيل النقطي للحصول على المعدل الطبيعي لهذا المتجه.
‫هذا ما نفعله هنا ، باستخدام دالة عضو بدلاً من متغير عضو.
‫إذن ، لقد حصلنا على الوضع الطبيعي الآمن لسرعة المنصة وسنضع الفاصلة المنقوطة في نهاية
‫السطر لأن لدينا هنا متغيرًا نقول أساسًا أنه اتجاه الحركة.
‫والآن يمكننا استخدام ذلك في السطر التالي لعمل اتجاه حركة مضروبًا في مسافة الحركة التي تم
‫تكوينها لأننا نريد الانتقال تمامًا إلى النهاية ، وليس التجاوز.
‫وبعد ذلك ، بعد أن فعلنا ذلك ، يجب أن ننقل منصتنا إلى الموقع النهائي.
‫لذلك سنقوم بتحديد موقع الممثل ليكون موقع البداية ، وإلا فإن النظام الأساسي الخاص بنا
‫سيكون قد تجاوز وتجاوز هذا الموقع النهائي لأننا قمنا بتحديثه بالموقع الحالي
‫، وهو موقع التجاوز.
‫وهذا يسمح لنا بالانتقال بالضبط إلى نقطة النهاية.
‫ثم ابدأ من موقع البداية الجديد.
‫الآن من المهم أن نقوم بتحديث سرعة النظام الأساسي بعد أن نقوم بكل هذا لأننا نستخدمها
‫للحصول على اتجاه الحركة.
‫لذا سأقوم بتحديث سرعة المنصة بعد أن حددنا موقع الممثل.
‫الآن دعنا نعود إلى بكرة واحدة ونضغط على compile ونرى ما إذا كان هذا قد تم إصلاحه.
‫مشكلة نظامنا الأساسي يتحرك للخلف وللأمام ، فلنغلق هذه المحطة ونضرب التشغيل.
‫والآن إذا ألقينا نظرة ، فإن النظام الأساسي يتحرك بسرعة ، لكنه يتحرك بشكل موثوق حول موقع البداية
‫والنهاية الذي نتوقعه.
‫هذا كل ما أردت تغطيته في هذه المحاضرة.
‫لقد قمنا للتو بتصحيح القليل من الخلل الذي كان من الممكن أن يظهر في بعض تكوينات النظام الأساسي لدينا.
‫سأراك في المرحلة التالية.