﻿1
00:00:04,390 --> 00:00:05,410
‫أهلا ومرحبا.

2
00:00:05,420 --> 00:00:11,230
‫في هذه المحاضرة سنقوم بتقديم وظائف الأعضاء وهذه وظيفة

3
00:00:11,230 --> 00:00:17,680
‫آمنة وطبيعية تسمح لنا بالتعرف على اتجاه ناقل معين.

4
00:00:17,680 --> 00:00:19,900
‫دعونا نتعمق ونرى كيف يعمل هذا.

5
00:00:20,690 --> 00:00:26,480
‫لذا فإن طريقتنا البسيطة لإعادة النظام الأساسي إلى الاتجاه المعاكس تعمل بالسرعات

6
00:00:26,480 --> 00:00:28,200
‫التي اختبرناها بها.

7
00:00:28,220 --> 00:00:34,130
‫ولكن ماذا يحدث إذا قلت ، مرحبًا ، لنجعل هذه المنصة تعمل أسرع بعشر مرات؟

8
00:00:34,160 --> 00:00:36,570
‫دعنا نمضي قدمًا ونلعب ونرى ما سيحدث.

9
00:00:36,590 --> 00:00:42,410
‫حسنًا ، فجأة تقفز هذه المنصات إلى الأمام كثيرًا ولا تحوم حول نفس الموقع كما

10
00:00:42,410 --> 00:00:43,710
‫كانت من قبل.

11
00:00:43,730 --> 00:00:53,330
‫والسبب في ذلك هو أن الموقع الحالي ، عندما قمنا بتعيينه كموقع البداية ، ليس بالضرورة المسافة

12
00:00:53,330 --> 00:00:58,910
‫التي تم نقلها بالضبط ، فقد يكون من الممكن تجاوزه.

13
00:00:58,910 --> 00:01:01,490
‫وهذا ما تم التقاطه هنا في بيان if.

14
00:01:01,490 --> 00:01:07,310
‫نحن نقول أن المسافة التي تم تحريكها أكبر من مسافة الحركة ، مما يعني أننا سوف نتجاوز.

15
00:01:07,310 --> 00:01:11,680
‫يجب أن يكون لدينا تجاوز من أجل تفعيل هذا البيان إذا.

16
00:01:11,690 --> 00:01:17,840
‫لكن السؤال هو إلى أي مدى ، وهذا سيعتمد إلى حد كبير على حجم وقت دلتا.

17
00:01:17,840 --> 00:01:23,690
‫يمكننا التجاوز بكميات كبيرة جدًا ، خاصة إذا كانت سرعة النظام الأساسي كبيرة ، مما يعني

18
00:01:23,690 --> 00:01:26,990
‫أن موقع البداية الخاص بنا قد ينحرف بمرور الوقت.

19
00:01:26,990 --> 00:01:28,550
‫قد لا تبقى ثابتة.

20
00:01:28,550 --> 00:01:35,570
‫لذا فإن أفضل طريقة للقيام بذلك هي حساب المسافة التي نحتاجها للانتقال من موقع البداية الأصلي للوصول

21
00:01:35,570 --> 00:01:39,770
‫إلى الموقع الجديد باستخدام مسافة التحرك الدقيقة.

22
00:01:39,770 --> 00:01:43,040
‫لذلك دعونا نحاول تصور هذا الحساب ذهابًا وإيابًا.

23
00:01:43,040 --> 00:01:46,430
‫نقول أن لدينا منصة في موقع بدايتها هنا.

24
00:01:46,520 --> 00:01:53,090
‫نقول إن لديها سرعة يمكننا تمثيلها بسهم يمثل اتجاهًا وحجمًا ، ولديها أيضًا

25
00:01:53,090 --> 00:01:55,840
‫مسافة نريدها أن تتحرك.

26
00:01:55,850 --> 00:01:58,160
‫سنقوم بتمثيلها فقط من خلال هذه الدعامة هنا.

27
00:01:58,700 --> 00:02:05,720
‫الآن ، ما نقوله هو أننا نرغب في معرفة النقطة الدقيقة التي سيكون فيها النظام الأساسي في النهاية

28
00:02:05,720 --> 00:02:09,960
‫، وليس تجاوزًا ، ولكن بالضبط الموقع النهائي.

29
00:02:09,980 --> 00:02:14,960
‫الآن ، الطريقة التي يمكننا بها القيام بذلك هي اتخاذ اتجاه سهم السرعة.

30
00:02:14,960 --> 00:02:21,380
‫لذلك في لغة المتجهات ، يسمى هذا المستوى الطبيعي للسهم ، وهو في الأساس يأخذه إلى

31
00:02:21,380 --> 00:02:22,610
‫الحجم واحد.

32
00:02:22,610 --> 00:02:25,970
‫لذلك نحصل على الاتجاه ولكن بحجم واحد.

33
00:02:25,970 --> 00:02:31,700
‫يسمح لنا ذلك بمعرفة هذا العدد ، حجم السرعة بشكل أساسي ، ومدى سرعتنا.

34
00:02:32,090 --> 00:02:39,080
‫ثم ما يمكننا فعله هو أن نضرب هذا الاتجاه في مقدار المسافة لدينا لنحصل على سهم

35
00:02:39,080 --> 00:02:45,230
‫يعطينا الحركة الكاملة من موقع البداية إلى الموقع النهائي.

36
00:02:45,230 --> 00:02:46,310
‫بالضبط.

37
00:02:46,310 --> 00:02:49,760
‫لذلك دعونا نلقي نظرة على كيفية القيام بذلك في C ++.

38
00:02:49,760 --> 00:02:52,460
‫ما نبحث عنه هو موقع بداية جديد.

39
00:02:52,460 --> 00:02:58,670
‫لذا دعنا نزيل الطريقة التي نفعل بها هذا حاليًا وسيكون لدينا موقع بداية يساوي ، حسنًا ، ما الذي سيكون

40
00:02:58,670 --> 00:02:59,780
‫مساويًا له؟

41
00:02:59,780 --> 00:03:05,150
‫حسنًا ، سيكون مساويًا ، أولاً وقبل كل شيء ، موقع البداية بالإضافة إلى

42
00:03:05,150 --> 00:03:10,850
‫شيء ما ، لأننا نبدأ من هنا ونضيف هذا المتجه الأخضر للوصول إلى النهاية.

43
00:03:10,850 --> 00:03:13,250
‫إذن ما هو هذا المتجه الأخضر هناك؟

44
00:03:13,670 --> 00:03:18,770
‫حسنًا ، هذا هو المكان الذي نحتاج فيه إلى الحصول على السرعة العادية للمنصة.

45
00:03:18,770 --> 00:03:24,740
‫ولتسهيل فهمنا ، سأقسم ذلك إلى متغير خاص به.

46
00:03:24,740 --> 00:03:32,630
‫لذلك سننشئ متغيرًا جديدًا من النوع F المتجه ، والذي سأسميه اتجاه الحركة ،

47
00:03:32,630 --> 00:03:38,060
‫فقط لتوضيح ما نحاول تخزينه فيه ، ثم سنقوم بذلك احصل على

48
00:03:38,060 --> 00:03:47,780
‫هذا من نقطة سرعة النظام الأساسي ، واحصل على أمان ، وطبيعي ، ثم بعض الأقواس حول النهاية.

49
00:03:47,780 --> 00:03:48,950
‫إذن ما الذي يحدث هنا؟

50
00:03:48,950 --> 00:03:50,660
‫لم نر هذا من قبل.

51
00:03:50,660 --> 00:03:54,770
‫لقد استخدمنا النقطة للحصول على مكونات المتجه ، X و Y و Z.

52
00:03:54,770 --> 00:03:55,970
‫كانت تلك متغيرات.

53
00:03:56,060 --> 00:04:04,580
‫ولكن في C ++ وفي البرمجة الموجهة بالكائنات بشكل عام ، لدينا أيضًا وظائف موجودة في الفئات ، لذلك يمكننا استخدام

54
00:04:04,580 --> 00:04:08,510
‫عامل التشغيل DOT للحصول على أحد هذه الوظائف.

55
00:04:08,510 --> 00:04:13,250
‫لقد استخدمنا القولون القولون عندما كنا نحاول إخراجها من الفصل نفسه.

56
00:04:13,250 --> 00:04:20,480
‫ولكن عندما نريد إجراء عملية باستخدام المتجه الفعلي نفسه ، أي متجه سرعات النظام الأساسي ، يمكننا استخدام

57
00:04:20,480 --> 00:04:25,520
‫عامل التشغيل النقطي للحصول على المعدل الطبيعي لهذا المتجه.

58
00:04:25,520 --> 00:04:30,830
‫هذا ما نفعله هنا ، باستخدام دالة عضو بدلاً من متغير عضو.

59
00:04:31,070 --> 00:04:36,770
‫إذن ، لقد حصلنا على الوضع الطبيعي الآمن لسرعة المنصة وسنضع الفاصلة المنقوطة في نهاية

60
00:04:36,770 --> 00:04:41,360
‫السطر لأن لدينا هنا متغيرًا نقول أساسًا أنه اتجاه الحركة.

61
00:04:41,360 --> 00:04:50,330
‫والآن يمكننا استخدام ذلك في السطر التالي لعمل اتجاه حركة مضروبًا في مسافة الحركة التي تم

62
00:04:50,330 --> 00:04:56,870
‫تكوينها لأننا نريد الانتقال تمامًا إلى النهاية ، وليس التجاوز.

63
00:04:56,870 --> 00:05:01,850
‫وبعد ذلك ، بعد أن فعلنا ذلك ، يجب أن ننقل منصتنا إلى الموقع النهائي.

64
00:05:01,850 --> 00:05:08,630
‫لذلك سنقوم بتحديد موقع الممثل ليكون موقع البداية ، وإلا فإن النظام الأساسي الخاص بنا

65
00:05:08,630 --> 00:05:14,780
‫سيكون قد تجاوز وتجاوز هذا الموقع النهائي لأننا قمنا بتحديثه بالموقع الحالي

66
00:05:14,780 --> 00:05:16,460
‫، وهو موقع التجاوز.

67
00:05:16,700 --> 00:05:20,000
‫وهذا يسمح لنا بالانتقال بالضبط إلى نقطة النهاية.

68
00:05:20,050 --> 00:05:23,710
‫ثم ابدأ من موقع البداية الجديد.

69
00:05:23,740 --> 00:05:29,020
‫الآن من المهم أن نقوم بتحديث سرعة النظام الأساسي بعد أن نقوم بكل هذا لأننا نستخدمها

70
00:05:29,020 --> 00:05:31,420
‫للحصول على اتجاه الحركة.

71
00:05:31,420 --> 00:05:36,230
‫لذا سأقوم بتحديث سرعة المنصة بعد أن حددنا موقع الممثل.

72
00:05:36,250 --> 00:05:40,690
‫الآن دعنا نعود إلى بكرة واحدة ونضغط على compile ونرى ما إذا كان هذا قد تم إصلاحه.

73
00:05:40,690 --> 00:05:47,230
‫مشكلة نظامنا الأساسي يتحرك للخلف وللأمام ، فلنغلق هذه المحطة ونضرب التشغيل.

74
00:05:47,230 --> 00:05:53,800
‫والآن إذا ألقينا نظرة ، فإن النظام الأساسي يتحرك بسرعة ، لكنه يتحرك بشكل موثوق حول موقع البداية

75
00:05:53,800 --> 00:05:56,020
‫والنهاية الذي نتوقعه.

76
00:05:56,020 --> 00:05:58,300
‫هذا كل ما أردت تغطيته في هذه المحاضرة.

77
00:05:58,300 --> 00:06:03,880
‫لقد قمنا للتو بتصحيح القليل من الخلل الذي كان من الممكن أن يظهر في بعض تكوينات النظام الأساسي لدينا.

78
00:06:03,880 --> 00:06:05,380
‫سأراك في المرحلة التالية.

