اذهب إلى المحتوى

كيفية إيجاد الزاوية بين شعاعين في فضاء ثنائي الأبعاد 2D


Ola Abbas

ناقشنا في المقال السابق بعض استخدامات الجداء النقطي والتي هي:

  1. حساب طول الشعاع: حيث يكون الجداء النقطي للشعاع مع نفسه = الطول2.
  2. اكتشاف تعامد شعاعين: حيث يكون الجداء النقطي لشعاعين متعامدين = 0.

تساوي الزاوية بين الشعاع ونفسه 0 درجة في الحالة الأولى، وتساوي الزاوية بين الشعاعين 90 درجة في الحالة الثانية، وبالتالي يمكن القول أن الزاوية بين الشعاعين لها علاقة بالجداء النقطي، إذ قد يكون حاصل الجداء النقطي كبيرًا عندما تكون الزاوية بين الشعاعين قريبة من الصفر وصغيرًا عندما تكون الزاوية بينهما قريبة من الزاوية القائمة.

سنناقش في هذا المقال المواضيع التالية:

  • الخاصيتان المتعلقتان بالجداء النقطي للأشعة.
  • صيغة لحساب الزاوية بين شعاعي وحدة Unit Vectors.
  • عدد الأشعة التي تبعد عن شعاع معين بالمقدار الزاوي نفسه.
  • معنى جيب التمام السالب للزاوية بين شعاعين.
  • كيفية العثور على الزاوية بين الأشعة التي ليست أشعة وحدة.

تأثير طول الأشعة على الجداء النقطي

01 angles1

لنفكّر حاليًا في الأشعة في فضاء ثنائي الأبعاد مثل الشعاع a في الرسم البياني السابق، حيث يُحتمَل أن يكون جداؤه النقطي مع الشعاع c الذي له منحى Orientation مقداره 60 درجة أكبر من جدائه النقطي مع الشعاع b الذي له منحى مقداره 30 درجة، لأن الشعاع c أطول بكثير من الشعاع b، ولنتأكد الآن من ذلك الآن. ولتكن لدينا الأشعة التالية:

a = (6, 0)T

b = (3, 2)T

c = (5, 9)T

ويكون الجداء النقطي لها هو:

a · b = 18.0

a · c = 30.00

توجد خاصيتان متعلقتان بحاصل جداء الأشعة النقطي كما ذكرنا سابقًا وهما:

  • الزاوية بين أشعة الإدخال.
  • طول أشعة الإدخال.

ولكننا نرغب الآن في إبقاء تأثير الزاوية فقط من خلال إزالة تأثير الطول بطريقة أو بأخرى، ويمكننا إزالة تأثير الطول باستخدام توحيد Normalize الأشعة، أي إنشاء أشعة الوحدة Unit Vectors في الاتجاه نفسه كما سنوضح في الفقرة التالية.

توحيد الأشعة

02 angles2

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

ملاحظة: تذكّر أن الحرف u المنخفض يشير إلى شعاع الوحدة: ‎bu‎.

إلغاء تأثير الطول على جداء الأشعة النقطي

لنتأكد الآن من الجداء النقطي الأكبر من بين الجداءين ‎au · bu‎ و ‎au · cu‎ بعد أن وحّدنا الأشعة لإلغاء تأثير الطول على الجداء النقطي.

بما أن: u · v = | u | | v | cos θ، وجميع الأشعة طولها يساوي 1.0، فإن الجداء النقطي ‎u · v = cos θ، وبالتالي فإن الجداء النقطي ‎au · bu‎ يساوي جيب تمام الزاوية بين الشعاعين ‎au‎ و ‎bu‎، والذي يمكن قراءته من الرسم البياني على أنه 0.866، بينما يساوي الجداء النقطي ‎au · cu‎ جيب تمام الزاوية بين ‎au‎ و ‎cu‎، والذي يمكن قراءته من الرسم البياني على أنه 0.500.

02 angles2

منحى الشعاع ‎bu‎ أقرب إلى الشعاع ‎au‎، لذلك يكون ‎au · bu‎ هو الأكبر حيث:

au = (1, 0): شعاع الوحدة عند الزاوية صفر درجة

bu = (0.866, 0.5): شعاع الوحدة عند الزاوية 30 درجة

cu = (0.5, 0.866): شعاع الوحدة عند الزاوية 60 درجة

تذكر أن: cos 30 = 0.866 و sin 30 = 0.5 و cos 60 = 0.5 و sin 60 = 0.866.

وبالتالي فإن الجداء النقطي هو:

au · bu = 0.866

au · cu = 0.500

لذا يمكن إزالة تأثير الطول باستخدام أشعة طولها 1، ويكون حاصل الجداء النقطي أكبر عندما تفصل زاوية صغيرة بين الأشعة، وإذا كانت الأشعة في اتجاهات متعاكسة مثل ‎(1, 0)T‎ و ‎(-1, 0)T‎، فسيكون مقدار الجداء النقطي سالبًا.

مجال قيمة الجداء النقطي لشعاعي وحدة

سنوضّح فيما يلي عينة لشعاع الوحدة ‎bu‎ وحاصل الجداء النقطي له مع الشعاع ‎au = (1.0, 0)T‎ لزوايا مختلفة:

الزاوية الشعاع b النتيجة صورة توضيحية
الزاوية 000 درجة ‎(1.000, 0.000)T تساوي 1.000 03_cosineTable00.png
الزاوية 015 درجة ‎(0.966, 0.259)T تساوي 0.966 04_cosineTable15.png
الزاوية 030 درجة ‎(0.866, 0.500)T تساوي 0.866 05_cosineTable30.png
الزاوية 045 درجة ‎(0.707, 0.707)T تساوي 0.707 06_cosineTable45.png
الزاوية 060 درجة ‎(0.500, 0.866)T تساوي 0.500 07_cosineTable60.png
الزاوية 075 درجة ‎(0.259, 0.966)T تساوي 0.259 08_cosineTable75.png
الزاوية 090 درجة ‎(0.000, 1.000)T تساوي 0.000 09_cosineTable90.png
الزاوية 105 درجة ‎(-0.259, 0.966)T تساوي ‎-0.259 ‫ 10_cosineTable105.png
الزاوية 120 درجة ‎(-0.500, 0.866)T تساوي ‎-0.500 11_cosineTable120.png
الزاوية 135 درجة ‎(-0.707, 0.707)T تساوي ‎-0.707 12_cosineTable135.png
الزاوية 150 درجة ‎(-0.866, 0.500)T تساوي ‎-0.866 13_cosineTable150.png
الزاوية 165 درجة ‎(-0.966, 0.259)T تساوي ‎-0.966 14_cosineTable165.png
الزاوية 180 درجة ‎(-1.000, 0.000)T تساوي ‎-1.000 15_cosineTable180.png

bu‎ هو شعاع الوحدة الذي تمثله المصفوفة ‎(cos θ, sin θ )T‎ في كل حالة من الحالات.

إذًا مجال قيم حاصل الجداء النقطي لشعاعي الوحدة ‎au · bu‎ هو ‎-1.0 … 1.0.

صيغة حساب الزاوية بين شعاعين

مجال قيم حاصل الجداء النقطي لشعاعي الوحدة ‎au · bu‎ هو ‎-1.0 … 1.0، لأن كل جداء نقطي في الفقرة السابقة هو:

‎(1, 0)T · ( cos θ, sin θ)T = cos θ

وهذا صحيح، فعندما يكون ‎au‎ شعاع وحدة فإنه سيؤشر إلى أيّ اتجاه، وبالتالي يمكن حساب الزاوية بين شعاعي الوحدة كما يلي:

au · bu = cos θ‎

حيث θ هي الزاوية بين الشعاعين، وتتضمن هذه الصيغة تلقائيًا حقيقة أن الجداء النقطي للأشعة المتعامدة هو صفر، لأن جيب تمام cos الزاوية 90 يساوي الصفر.

أوجد جيب تمام الزاوية بين شعاعي الوحدة اللذين تمثلهما المصفوفتان ‎(0.7071, 0.7071)T‎ و ‎(0.5, 0.866)T‎:

cos θ = (0.7071, 0.7071)T · (0.5, 0.866)T = 0.7071 · 0.5 + 0.7071 · 0.866 = 0.9659‎

تدريب عملي

تدريب 1:

16 angles3

يوضّح الرسم البياني السابق شعاعين هما: الشعاع الأول ‎(0.7071, 0.7071)T‎ وهو شعاع وحدة عند الزاوية 45 درجة، والشعاع الثاني ‎(0.5, 0.866)T‎ وهو شعاع وحدة عند الزاوية 60 درجة، وبالتالي يجب أن يكون حاصل الجداء النقطي لهما هو جيب تمام الزاوية 15. لنوضّح ذلك باستخدام الرموز كما يلي:

  1. الشعاع الأول هو ‎(cos 45, sin 45)T‎.
  2. الشعاع الثاني هو ‎(cos 60, sin 60)T‎.
  3. حاصل الجداء النقطي لهما هو:

cos 45 cos 60 + sin 45 sin 60

‎= cos 45 cos(45 + 15) + sin 45 sin(45+15)‎

‎= cos 45 (cos 45 cos 15 - sin 45 sin 15) + sin 45 (cos 45 sin 15 + cos 15 sin45)‎

‎= cos 45 cos 45 cos 15 - cos 45 sin 45 sin 15 + sin 45 cos 45 sin 15 + sin 45 cos 15 sin 45

‎= cos2 45 cos 15 + sin245 cos 15

‎= (cos245 + sin245)cos15

‎= cos 15

استخدامنا في الخطوة رقم 5 القاعدتين التاليتين:

cos(x+y) = cos(x) cos(y) - sin(x) sin(y)‎

sin(x+y) = sin(x) cos(y) + cos(x) sin(y)‎

واستخدامنا في الخطوة رقم 9 القاعدة التالية:

sin2x + cos2x = 1‎

أوجد جيب تمام Cosine الزاوية بين شعاعي الوحدة المُمثَّلان بالمصفوفتين ‎‎qu = (0.0, 1)T‎ و ‎ru = (0.5, 0.866)T‎:

qu · ru = cos θ = 0.866‎

وبالتالي: θ =‫ arc cos 0.866 ‫= 30 درجة.

تدريب 2:

يظهِر الشكل التالي الشعاعان ‎qu‎ و ‎ru‎ والزاوية بينهما:

17 angles4

تذكّر أن:

qu · ru = ru · qu‎

يجب أن تكون الزاوية بين الشعاعين 180 درجة أو أقل (حسب التعريف)، ولا يهم ترتيب الأشعة في الجداء النقطي.

ملاحظة: من المفيد في بعض الأحيان رسم صورة للتأكد من أن إجابتك منطقية خاصةً عندما تؤشر الأشعة إلى أرباع مختلفة.

أوجد جيب تمام الزاوية بين شعاعي الوحدة المُمثَّلان بالمصفوفتين ‎qu = (0.0, 1)T‎ و ‎wu = (-0.5, 0.866)T‎:

cos x =‫ 0.866، إذًا يجب أن تكون x =‫ arc cos 0.866 =‫ 30 درجة.

لاحظ أن كلا الشعاعين ‎ru‎ و ‎wu‎ يعطيان الإجابة cos 30 عند تطبيق الجداء النقطي عليهما مع الشعاع ‎qu‎، بالرغم من أنهما يقعان على جانبي هذا الشعاع.

يوجد شعاعا وحدة يبعدان بمقدار 30 درجة عن الشعاع المعطَى في الفضاء ثنائي الأبعاد، وسيعطي كلاهما النتيجة نفسها للجداء النقطي مع الشعاع المُعطى، لذا يجب أن تكون حذرًا في رسم الأشعة في الحالات الغامضة.

الزوايا بين شعاعين التي تكون أكبر من 90 درجة

أوجد جيب تمام الزاوية بين شعاعي الوحدة المُمثَّلين بالمصفوفتين ‎qu = (0.0, 1)T‎ و ‎zu = (-0.5, -0.866)T‎:

18 angles5

الزاوية بين هذين الشعاعين أكبر من 90 درجة، وبالتالي فإن جيب تمام الزاوية بينهما سالبة، حيث cos θ =‫ ‎-0.866، لأن:

θ = arc cos -0.866 = 150‎

الزاوية نفسها تعطي الجداء النقطي نفسه

لنحاول الآن رسم الشعاع الآخر الذي جداؤه النقطي مع الشعاع ‎qu‎ يساوي ‎-0.866 كما يلي:

19 angles6

الشعاعان اللذان يكون ناتج الجداء النقطي لهما مع الشعاع ‎qu = (0.0, 1)T‎ يساوي ‎-0.866 هما:

zu = (-0.5, -0.866)T

vu = (0.5, -0.866)T‎

وضعنا في الرسم البياني السابق ذيل هذين الشعاعين عند نقطة الأصل، ولكن تذكّر أن الأشعة ليست ثابتة في أي موقع معين ويمكن رسمها في أيّ مكان مناسب، وأن الجداء النقطي يعطي الزاوية بين منحى كلٍّ من هذين الشعاعين.

أوجد الزاوية بين الشعاعين: ‎du = 0.7071(1,1)T‎ و ‎eu = -0.7071(1,1)T‎، وارسم هذين الشعاعين لتوضيح الحالة:

0.7071‎(1, 1)T · -0.7071(1, 1)T = 0.7071(-0.7071)(1+1) = -0.70712 * 2 = -0.5*2 = 1

إذًا الزاوية هي: cos( -1 )‎ =‫ 180 درجة، حيث يوجد شعاع واحد فقط يبعد 180 درجة عن الشعاع المعطى.

تدريب عملي أكثر واقعية

نادرًا ما يمنحك العالم الحقيقي زوايا سهلة تبلغ 30 درجة و 45 درجة و 60 درجة وما إلى ذلك، لذا إليك تدريبًا أكثر واقعية.

أوجد الزاوية المحصورة بين الشعاعين:

fu = (0.6, 0.8)T

gu = (0.8, 0.6)T

قد ترغب أولًا في التأكد من أن هذه الأشعة هي أشعة وحدة فعلًا، لذا ارسم هذه الشعاعين، ثم احسب ناتج الجداء النقطي لهما، واستخدم الدالة arc cos في الآلة الحاسبة لحاسوبك (أو الآلة الحاسبة الحقيقية) للعثور على الزاوية، ولا تنسَ حساب الإجابة بالدرجات وليس بالراديان كما يلي:

20 angles7

ناتج الجداء النقطي هو:

‎( 0.6, 0.8 ) · ( 0.8, 0.6 ) = 0.6*0.8 + 0.8*0.6 = 0.48 + 0.48 = 0.96

والزاوية بينهما هي: arc cos( 0.96 )‎ =‫ 16.26 درجة.

الأشعة التي ليست أشعة وحدة

ليكن لدينا الشعاعان التاليان، ونريد إيجاد الزاوية المحصورة بينهما:

j = (3, 4)T

k = (0, 2)T

نلاحظ أن هذه الأشعة ليست أشعة وحدة، وبالتالي لا يمكنك العثور على الزاوية بينهما دون مزيد من العمل، لذا دعونا نرسم رسمًا بيانيًا لهما أولًا.

يمكننا إيجاد الزاوية بين هذين الشعاعين من خلال توحيد Normalize كل منهما وهذا لا يغير منحاهما، وبالتالي أصبح لدينا الآن شعاعا وحدة ويمكن إيجاد جيب تمام الزاوية بينهما باستخدام الجداء النقطي.

الزاوية بين الأشعة التي ليست أشعة وحدة

لنوجد الآن الزاوية بين الشعاعين j و k:

21_angles8.gif

نوجد أولًا طول كل شعاع:

| j | = 5.0

| k | = 2.0

ثم نوحّد كلًا منهما، ولكن تذكّر أنه من الحكمة عدم إجراء عملية القسمة في هذه الخطوة في كثير من الأحيان:

ju = (3, 4)T / 5.0‎

ku = (0, 2)T / 2.0‎

نحسب الآن الجداء النقطي لهما:

ju · ku = (3, 4)T / 5.0 · (0, 2)T / 2.0 = (1/10)(3, 4)T · (0, 2)T = (0.1)(8) = 0.8‎

أخيرًا، نستخدم دالة arc cos في الآلة الحاسبة:

arc cos 0.8 = 36.87 درجة

لنحسب الآن الزاوية المحصورة بين الشعاعين: ‎a = (10, 5)T‎ و ‎b = (8,12)T‎ مثلًا.

نحسب الأطوال أولًا:

| a | = √125

| b | = √208

ثم نحسب الجداء النقطي:

‎(10, 5)T / √125 · (8, 12)T / √208 = (108 + 512) / ( √125 √208) = 140 / ( √125 √208) = 140 / √(125*208) = 140 / √26000 = 0.86824

وبالتالي فإن الزاوية هي:

arc cos ( 0.86824 ) = 29.745 درجة

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

ترجمة -وبتصرُّف- للفصل The Angle between Two Vectors من كتاب Vector Math for 3D Computer Graphics لصاحبه Bradley Kjell.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...