السلام عليكم :
لتحميل أمثلة هذا الموضوع :*
جميع الأمثلة مكتوبة بلغة :
1- Cpp ( السي بلس ) + Win32 API
2- ( السي بلس ) Cpp + OpenGL
3- الجافا - Java
ومرفق أيضا الملفات التنفيذية .
---------------------------
الهدف من هذا الموضوع هو إلقاء نظرة على الاحداثيات القطبية , التي تتميز بانتاج كم وافر من الاشكال الدائرية ( بأقل جهد ممكن ) .
والذي قام برسم دائرة بالاعتماد فقط على الاحداثيات الديكارتية سيجد الصعوبة الكبيرة التي واجهته .
لست متأكدا من أن الاحداثيات القطبية مستخدمة في برمجة الجرافكس , ولكن ما استطيع أن أؤكده هو أن لها فائدة كبيرة في انتاج أشكال معقدة لم نكن قادرين على انتاجها بسهولة في الاحداثيات الديكارتية .
سأفرض أن قارئ الموضوع له خلفية عن الاحداثيات القطبية .. واذا لم تكن كذلك , فلا تقلق ,, فبالغالب ما نحتاجه هنا سأشرحه ان شاء الله .
وسنقوم معا بإنعاش ذاكرتنا لفهم بعض القوانين البسيطة .
أيضا يتوجب عليك أن تكون على اطلاع واسع بالدوال المثلثية ( الجا والجتا ) .
قد كتبت موضوع قبل مدة عن الدوال المثلثية .
الدوال المثلثية .. وتطبيقاتها في برمجة الألعاب والجرافكس.
الموضوع تطبيقي لابد من وضع التطبيقات ..
ملاحظة هامة :
- نظام الاحداثيات في الويندوز ( Win32 API ) .. والجافا .. يختلف عن الشائع وعما درسناه .
فالاحداثي الصادي يتزايد كلما اتجهنا من أعلى إلى أسفل النافذة .
بعكس الواقع وهو ان المحور الصادي يتناقص كلما اتجهنا من اعلى الى اسفل .
لذلك ستجد بعض الاشكال التي سنرسمها مقلوبة .. وقد تعمدت ترك ذلك حتى لا نغير من شكل القوانين .. بأن نضربها بسالب واحد ,
ولكن في OpenGL .. استطيع التحكم بالاحداثيات .. لذلك ستجد الرسم غير مقلوب .
فهرس الموضوع :
• مقدمة سأشرح فيها باقتضاب أهم الجوانب في الإحداثيات القطبية .. فقط لعمل إنعاش للذاكرة .
• التطبيق الأول : الدوائر في الإحداثيات القطبية .
• التطبيق الثاني : المنحنيات القلبية .
• التطبيق الثالث : المنحنيات الصدفية الدائرية .
• التطبيق الرابع : ذوات العروتين .( العروة)
• التطبيق الخامس المنحنيات الوردية ( الوردة) .
• التطبيق السادس: حلزون أرخميدس .
الكتاب الذي اعتمدته كمرجع , هو كتاب قد درسته في المستوى السابق ,
وهو : مبادئ التفاضل والتكامل – الجزء الثاني – الفصل الأخير منه – ( من تأليف الدكتور صالح السنوسي وآخرون ) :) .
أنظمة الإحداثيات :
• لقد استخدمنا في دراستنا على مدى السنين الطوال الإحداثيات الديكارتية لتعيين النقاط في المستوي , واستفدنا من هذه الإحداثيات في علم الرسم بالحاسب , مكتبة GDI و GDI+ و OpenGL و Directx و Java2D الخ .. كلها تعتمد على الإحداثيات الديكارتية لتعيين النقاط على النافذة.
• للتذكير :
الإحداثيات الديكارتية هدفها الأساسي هو تحويل وتمثيل المسائل الجبرية إلى هندسية والعكس , وتحتاج لتعيين نقطة في المستوي إلى تمثيلها هكذا :
X , Y
لاحظ أن نقطة الأصل في منتصف النافذة , ولكن بعض الأنظمة مثل الGDI في الويندوز تفرض أن نقطة الأصل في الزاوية العلوية اليسرى .
بالتالي لتطبيق بعض النقاط .. تحتاج لعمل ازاحة .
• الإحداثيات القطبية :
الإحداثيات القطبية تتكون من :
- نقطة ثابتة تسمى القطب أو نقطة الأصل O .
- نصف مستقيم موجه من نقطة الأصل يسمى بالمحور القطبي ,
- لتعيين النقاط في المستوي نحتاج إلى زوج مرتب بهذه الصورة :
R , Theta
حيث R هي المسافة الموجة من نقطة الأصل إلى النقطة التي نحددها P
Theta هي الزاوية الموجهة من المحور القطبي إلى المستقيم O P.
بالنسبة لقياس الزاوية theta هو بالقياس الدائري .. لا اعلم هل هذا الزامي أو لا , لا أتوقع أن هذا إلزامي , لكن هو إلزامي عندما نريد تطبيق الدروس بلغات البرمجة .. التي تفرض أن الزاوية بالراديان .
• مثال :
عين هذه النقطة الممثلة بالاحداثيات القطبية :
( 3 , PI/4)
لاحظ أن الزاوية بالراديان .. ويقابلها بالستيني الزاوية 45
الحل :
• التحويل من الإحداثيات القطبية إلى الإحداثيات الديكارتية :
يوجد أكثر من قانون .. سنأخذ أهمها :
X = r * Cos(theta)
Y = r * Sin(theta)
• مثال : جد الإحداثيات الديكارتية من النقطة ( 8, 9*PI/4 ) :
الحل :
X = 8 * Cos (9*PI/4) = 5.6
Y = 8 * Sin(9*PI/4) = 5.6
لذلك :
(x,y) = (5.6,5.6)
بهذا نكون قد انتهينا من الجزء النظري للموضوع .. الجلسة القادمة ستتناول الجاني التطيقي .


