Download as pdf or txt
Download as pdf or txt
You are on page 1of 391

‫س‬ ‫ح‬ ‫ل‬ ‫ب‬ ‫س‬

‫أساسيات الر م ا ا وت‬


‫اساسيات الرسم بالحاسوب‬

‫‪2‬‬
‫اساسيات الرسم بالحاسوب‬

‫أساسيات الرسم بالحاسوت‬

‫‪3‬‬
‫اساسيات الرسم بالحاسوب‬

‫العبادي‪ ،‬نضال‬
‫أساسيات الرسم بالحاسوب‬
‫رقم اإليداع في دار الكتب والوثائق ‪ -‬بغداد‪(381( )/40882017( :‬‬
‫رقم التصنيف‪620.0040285 :‬‬
‫الواصفات‪/ :‬الهندسة ‪ / /‬الرسم الهندسي األولي ‪ / /‬الرسم بمساعدة الحاسوب‪.‬‬
‫تم إعداد بيانات الفهرسة والتصنيف األولية من قبل دار الذاكرة للنشر والتوزيع‬

‫الطبعة األولى‬
‫‪2018‬‬
‫حقوق الطبع محفوظة للناشر‬

‫حقوق النشر اإللكتروني محفوظة للناشر‬


‫يمنع طباعة أو تصوير هذا المنشور بأية طريقة كانت إلكترونيةة أو‬
‫ميكانيكية أو مغناطيسية أو بالتصةوير أو بالة ذ كلةو ول الر ةو‬
‫الفاعةةة‬ ‫إلةةةل الناشةةةر وبةةةسكل وبةةةي مسةةةبر وبالةةة ذ كلةةةو يت ةةةر‬
‫للم حقة القانونية‬

‫بغداد ‪ -‬الصرافية – مجاور الجسر الحديدي‬


‫نقال‪07700488780 / 07800740728 :‬‬
‫بريد إلكتروني‪info@althakera.com / www.althakera.com :‬‬

‫‪4‬‬
‫اساسيات الرسم بالحاسوب‬

‫الى التي سارت معي في طريقي الموحش‪..‬‬


‫فوطئنا االشواك معا‪ ..‬وشقينا معا‪ ..‬وشعرنا بالجوع والفاقة معا‪..‬‬
‫الى التي لم تتركني يوما وحيدا‪ ..‬رفيقة دربي‬
‫زوجتي الحبيبة فضيلة‪..‬‬

‫‪5‬‬
‫اساسيات الرسم بالحاسوب‬

‫المحتويات‬

‫المقدمة ‪12 ........................................................................................‬‬

‫الفص االول‪ ..‬مدو الل رسوم الحاسوب‪17 ..............................................‬‬

‫المقدمة‪17 ......................................................................................‬‬
‫المتجهات‪18 ...................................................................................‬‬
‫المصفوفات ‪24 ................................................................................‬‬
‫تطبيقات رسوم الحاسوب‪27 ................................................................‬‬
‫التوليد‪32 .......................................................................................‬‬
‫ما هو عنصر الصورة في رسوم الحاسوب‪33 ..........................................‬‬
‫الصورة النقطية والمتجهة‪36 ...............................................................‬‬
‫التعريف وشدة الوضوح‪38 .................................................................‬‬
‫االلوان االساسية ‪39 ..........................................................................‬‬
‫تقنيات العرض ‪43 ............................................................................‬‬
‫شاشات العرض‪46 ...........................................................................‬‬
‫الصور الرقمية‪52 ............................................................................‬‬
‫تمثيل الصور الرقمية ‪53 ....................................................................‬‬
‫احداثيات شبكة الشاشة‪55 ...................................................................‬‬
‫بعض الدوال والمالحظات البرمجية المهمة ‪58 .........................................‬‬

‫الفص الثاني‪ ..‬رسم الالبوط‪67 ..............................................................‬‬


‫‪6‬‬
‫اساسيات الرسم بالحاسوب‬

‫المقدمة‪67 ......................................................................................‬‬
‫تعاريف‪67 .....................................................................................‬‬
‫تقنيات رسم النقطة‪68 ........................................................................‬‬
‫قياس النوعية لخوارزميات رسم خط جيد‪69 ............................................‬‬
‫رسم الخطوط‪72 ..............................................................................‬‬
‫خوارزمية ‪84 ........................................................................ DDA‬‬
‫خوارزمية برزنهام‪88 .......................................................................‬‬

‫الفص الثالث‪ ..‬رسم الدائرة ‪99 ...............................................................‬‬

‫المقدمة‪99 ......................................................................................‬‬
‫رسم الدائرة بطريقة االحداثيات الديكارتي ‪100 .........................................‬‬
‫طريقة االقطاب ‪102 .........................................................................‬‬
‫التناظر ‪105 ...................................................................................‬‬
‫طريقة الزيادة ‪106 ...........................................................................‬‬
‫خوارزمية النقطة الوسطى‪110 ............................................................‬‬
‫الشكل البيضوي‪118 .........................................................................‬‬

‫الفص الرابع‪ ..‬التحوي ت ثنائية االب ا ‪137 ...............................................‬‬

‫المقدمة‪137 ....................................................................................‬‬
‫انواع التحويالت ‪137 ........................................................................‬‬
‫النقل‪138 .......................................................................................‬‬
‫التحجيم ‪140 ...................................................................................‬‬

‫‪7‬‬
‫اساسيات الرسم بالحاسوب‬

‫التدوير‪146 ....................................................................................‬‬
‫السحب‪153 ....................................................................................‬‬
‫االنعكاس ‪156 .................................................................................‬‬
‫المصفوفة المتجانسة ‪164 ...................................................................‬‬

‫الفص الالامس‪ ..‬تحوي ت االشكال ث ثية االب ا ‪183 ..................................‬‬

‫المقدمة‪183 ....................................................................................‬‬
‫ابعاد الصورة‪184 ............................................................................‬‬
‫الرسوم ثالثية االبعاد‪184 ...................................................................‬‬
‫التحويالت‪188 ................................................................................‬‬
‫النقل‪188 .......................................................................................‬‬
‫التحجيم ‪189 ...................................................................................‬‬
‫التدوير‪190 ....................................................................................‬‬
‫سحب الشكل ثالثي االبعاد ‪204 ............................................................‬‬
‫االنعكاس في النظام الثالثي االبعاد ‪206 ..................................................‬‬

‫الفص السا س‪ ..‬االسقاط ‪209 ...............................................................‬‬

‫المقدمة‪209 ....................................................................................‬‬
‫التعريف ‪209 ..................................................................................‬‬
‫نقاط التالشي ‪210 ............................................................................‬‬
‫انواع المساقط ‪211 ...........................................................................‬‬

‫‪8‬‬
‫اساسيات الرسم بالحاسوب‬

‫االسقاط المتوازي‪211 .......................................................................‬‬


‫المسقط المنظوري‪226 ......................................................................‬‬
‫مقارنة بين االسقاط المتوازي واالسقاط المنظوري ‪239 ..............................‬‬

‫‪241 ......................................... Polygon‬‬ ‫الفص السابع‪ ..‬مت د االض‬

‫المقدمة‪238 ....................................................................................‬‬
‫انواع متعدد االضالع‪243 ..................................................................‬‬
‫النقاط في متعدد االضالع ‪244 .............................................................‬‬
‫خوارزمية امالء متعدد االضالع بلون معين ‪248 ......................................‬‬

‫‪255 .. World windows and viewports‬‬ ‫الفص الثامن‪ ..‬النوافذ وال ر‬

‫المقدمة‪255 ....................................................................................‬‬
‫تعاريف‪256 ...................................................................................‬‬
‫تحويل نافذة المشهد الى نافذة العرض ‪257 ..............................................‬‬
‫خطوات تحويل نافذة المشهد الى نافذة العرض‪258 ....................................‬‬

‫الفص التاسع‪ ..‬عمليات القبع ‪267 .......................Clipping operations‬‬

‫المقدمة‪267 ....................................................................................‬‬
‫القطع ‪267 .....................................................................................‬‬
‫قطع النقطة‪269 ...............................................................................‬‬
‫قطع الخط ‪269 ................................................................................‬‬
‫قطع الخط المستقيم بطريقة كوهين‪-‬سوثرالند ‪271 .....................................‬‬
‫خوارزمية القطع بطريقة ‪289 ........................................ Lang-Barsky‬‬

‫‪9‬‬
‫اساسيات الرسم بالحاسوب‬

‫الفص ال اشر‪ ..‬المنحينات ‪301 .......................................... The curves‬‬

‫المقدمة‪301 ....................................................................................‬‬
‫متعدد الحدود ‪302 ............................................................................‬‬
‫معادلة المعامالت ‪303 .......................................................................‬‬
‫منحنيات بيزر ‪306 ...........................................................................‬‬
‫التعريف العام لمنحنيات بيزر ‪311 ........................................................‬‬
‫الشريحة ‪314 ....................................................................... spline‬‬
‫منحني الشرائح االساس ‪315 ...............................................................‬‬

‫الفص الحا ي عشر‪ ..‬وال رسوم اهزة ‪349 ...........................................‬‬

‫المصا ر ‪387 ....................................................................................‬‬

‫‪10‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪11‬‬
‫اساسيات الرسم بالحاسوب‬

‫المقدمة‬
‫الحمد هلل الحي القيوم‪ ،‬الباقي وغيره ال يدوم‪ ،‬رفع السماء وزينها بالنجوم‪ ،‬وامسو‬
‫بجبال في الالتوم‪ ،‬صور بقدرته هذ ِه الجسوم‪ ،‬ثم أماتها ومحا الرسوم‪ ،‬ثم‬ ‫األر‬
‫ر إلل نار السموم‪،‬‬
‫ر إلل ار الن يم وفري ٌ‬
‫ينفخ في الصور فسكا الميت يقوم‪ ،‬ففري ٌ‬
‫الحمد هلل الذي لواله ما جرى قلم‪ ،‬وال تكلم لسان‪ ،‬والصالة والسالم على سيدنا‬
‫محمد سيد المرسلين وامام المتقين وعلى آلة وصحبه الطاهرين‪ ،‬الحمد هللا الذي‬
‫أنار عقولنا‪ ،‬ويسر طريقنا‪ ،‬وشغل أوقاتنا بما ينفعنا‪ ،‬نحمده تعالى ونشكره‪.‬‬

‫رب سائل يس أل م ا و الس ب ورا دراس ة رس ول الحاس وب س وا كن ا اش اا ‪،‬‬


‫ماتص ي او طلب ة ول ول الحاس وبج وابباب ة ببس اطة و او رس ول الحاس وب‬
‫تتض م مس احة كبي رب م التطبيق ا الت ي تش مل تص ميل الكيان ا ‪ ،‬الحرك ة‪،‬‬
‫المحاكابج ج الخج او رسول الحاس وب يمل ل حق ل تكنولوبي ا المعلوم ا ال ي يتعام ل‬
‫م ع قل ع ومعالج ة الص ور الرومي ةج رس ول الحاس وب يغط ي مس احا ماتلف ة م‬
‫المعرف ة‪ ،‬تش مل تملي ل ونال ر الرس ول نص و ‪ ،‬ل ور‪ ،‬في ديو ‪ ،‬فض ع و‬
‫تحويعتها التدوير‪ ،‬النقل‪ ،‬التحجيل باستادال الاوارزميا ج‬
‫مفهول رسول الحاسوب يعني ببساطة تحديد مساحا م الشاشة والتي يتل‬
‫أضا تها‪ ،‬ومساحا اقرى ب يتل أضا تهاج غالبية ابشكال المنتظمة ملل الاطوط‬
‫المستقيمة او الدوائر وغير ا يتل تمليلها بمعادب رياضيةج إذا تل تقديل معادب ‪،‬‬
‫فاو الجان ابول م رسول الحاسوب و تحويل ه المعادب الى متوالية م‬
‫النقاط تسمى قعيا الصورب ونصر الصورب والتي م المفروض او يتل أضا تها‬
‫في حالة وارضا الرسول النقطية او ببساطة تحويلها الى منحني ال ي يمك‬
‫اوتفا أثره ولى الشاشةج وحيث او ه ابومال في كلير م ابحياو يج او تكوو‬
‫سريعة وكفو ب‪ ،‬وليه فاو دراسة رسول الحاسوب سوف تقدل ودد م الاوارزميا‬
‫ومحدداتهاج‬

‫‪12‬‬
‫اساسيات الرسم بالحاسوب‬

‫او التطور في رسول الحاسوب بعل الحواسي أسهل للتفاول معها‪ ،‬وأفضل للفهل‬
‫وتفسير ودب انواع م البيانا ج التطور في رسول الحاسوب كاو له تأثير وميع‬
‫ولى العديد م وسائل ابوعل وأحدث ثورب في لناوة الرسول المتحركة والعاب‬
‫الفيديوج وادب‪ ،‬رسول الحاسوب مصطلح يشير الى ودب اشيا ‪ :‬تمليل وتحوير بيانا‬
‫الصورب بواسطة الحاسوب‪ ،‬ماتلف التقنيا التي تستادل لالع ومعالجة الصور‪،‬‬
‫انتاج الصور‪ ،‬وفرع م ولول الحاسوب ال ي يدرس طرق الصناوة الرومية‬
‫ومعالجة المحتويا الروميةج‬
‫ببد م ابشارب الى او ابشاا ال ي يعملوو في مجال رسول الحاسوب م‬
‫المفروض او يكوو لهل اساس ووي في مجال الرياضيا ‪ ،‬لكي يستغلوو ه‬
‫ابمكانيا في حل المشاكلج م قعل تجربتي فاو غالبية الناس لهل ابستعداد‬
‫لزيادب مهاراتهل الرياضية ولى اسس ماصصة تبعا للمشكلة المطروحةج م‬
‫المحتمل او ب يكوو لهل وصد بو يكونوا ماتصي في مجال الرياضيا ‪ ،‬ومع ذلك‬
‫فانهل مستمروو بدراسة الرياضيا وتطبيع افكار اج‬
‫لغرض التوضيح فاو ا الكتاب و ليس كتاب رياضيا ج ول لك فاو القارئ وليه‬
‫او ب يقلع م مستواه او امكانياته في الرياضيا ‪ ،‬حيث او ا الكتاب ماصص‬
‫العاملي في رسول الحاسوب وال ي يعلموو او وليهل او يستادموا‬ ‫لألشاا‬
‫الرياضيا في اومالهل اليومية وليس م المفروض او يكونوا قبرا في البديهيا‬
‫والنظريا والحقائع الرياضيةج‬
‫ا الكتاب و شرح المفا يل ابساسية لرسول الحاسوب بدمجها مع‬ ‫الهدف م‬
‫تطبيقا مباشرب وامللة بسيطة لتوضيح ابفكار الواردب في ا الكتابج ك لك تل‬
‫دمج النظريا مع ابمللة التقنية لتمكي القارئ تطبيع المفا يل التقنية بشكل مباشر‬
‫وإلظهار فهل ماذا تعني ه المفا يلج‬
‫ا الكتاب مفيد لطلبة اوسال وكليا الحاسوب في الدراسة ابولية وك لك مفيد للتعلل‬
‫ال اتي لمبادئ ومفا يل الرسل بالحاسوب فضع و ابشاا الماتصي في مجال‬
‫ولول الحاسوبج المتطلبا ابولية تتضم معرفة اساسية في الرياضيا‬
‫والمتجها ج في ا الكتاب تل الحر ولى او يتضم ودد م ابمللة والبرامج‬

‫‪13‬‬
‫اساسيات الرسم بالحاسوب‬

‫التوضيحية بلغة ‪ C++‬فضع و شرح الاوارزميا والتي م الممك كتابتها باي‬


‫لغة برمجة اقرىج‬

‫و ك ا فاو لكل بداية نهاية‪ ،‬وقير العمل ما حس آقره‪ ،‬اتمنى في ا الجهد‬


‫المتواضع أو أكوو موفقا في سرد العنالر المهمة في موضوع رسول الحاسوب‪،‬‬
‫سردا ً ب ملل فيه‪ ،‬وب تقصير‪ ،‬موضحا ً الاوارزميا والمفا يل التي تهل طلبة‬
‫الدراسا ابولية‪ ،‬وأقيرا ً ما أنا إب بشر ود أقطئ وود ألي فإو كنت ود أقطأ‬
‫او وصر فأربو مسامحتي وإو كنت فد ألبت فه ا كل ما أربوه م هللا وز‬
‫وبل‪.‬‬
‫وأخيرا‪ ،‬فاني حاولت ان أساهم باليسير في هذا المجاال الواساع لماال أن يناال القباول‬
‫ويلقااى االستحسااان‪ ..‬وص ال اللهاام وساالم علااى ساايدنا وحبيبنااا محمااد وعلااى لل بيت ا‬
‫اجمعين‪..‬‬

‫نضال ال با ي‬
‫النجف األشرذ‪ /‬ال راق ‪2018‬‬
‫‪comp_dep_educ@yahoo.com‬‬

‫‪14‬‬
‫اساسيات الرسم بالحاسوب‬

‫المؤلف باوتصار‪:‬‬

‫االستاذ الدكتور نضال خضير العبادي‪ ..‬حاصل على‬


‫شهادة البكالوريوس في الهندسة‪ ،‬بكالوريوس في‬
‫علوم الحاسبات‪ ،‬ماجستير ودكتوراه في علوم‬
‫الحاسبات‪ .‬عمل في مجال الصناعة وعمل في مجال‬
‫التدريس في عدد من المؤسسات التعليمية‪ .‬مقوم‬
‫علمي لعدد من المجالت والمؤتمرات العلمية العربية‬
‫والعالمية‪ ،‬فضال عن عضوية تحرير عدد من‬
‫المجالت العالمية‪ .‬أشرف على عدد من طلبة الدكتوراه والماجستير‪.‬‬
‫مؤلف لعدد من الكتب العلمية‪ ،‬ول العديد من البحوث العلمية في مجال اختصاص ‪.‬‬
‫مجال االختصاص الدقيق هو معالجة الصور والرؤية بالحاسوب‪ .‬حاليا استاذ في‬
‫جامعة الكوفة – العراق‪.‬‬

‫‪15‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪16‬‬
‫اساسيات الرسم بالحاسوب‬

‫الفص االول‬
‫مدخل الى رسوم الحاسوب‬

‫‪ 1.1‬المقدمة‬

‫رسول الحاسوب و ف رسل الصور ولى شاشة الحاسوب بمساودب الحاسوب‬


‫والبرمجةج وبشكل أكلر ومومية‪ ،‬ي وملية تمليل ومعالجة بيانا الصور بواسطة‬
‫الحاسوبج ي تتضم ومليا حسابية‪ ،‬قلع‪ ،‬تحوير‪ ،‬وتعديل البيانا ج بكعل اقر‪،‬‬
‫نستطيع القول او رسول الحاسوب ي اداب توليد الصورب )‪ (rendering‬لتوليد‬
‫وتعديل الصورج‬
‫رسول الحاسوب تتعلع بكل الفعاليا التي تالع الرسول والصور اللابتة‬
‫والمتحركة‪ ،‬معالجتها وتحوير ا باستادال المكونا المادية وبرمجيا الحاسوبج‬
‫البيانا التي تكوو ولى شكل لور سهلة الفهل والتفسيرج وليه‪ ،‬فاو استادال‬
‫الحاسوب إلنتاج الصور اللابتة والمتحركة كاو له ابثر بلورب العاب الفيديو وانتاج‬
‫ابفعلج‬
‫تحوير الصور يحتاج الى ادوا ووية وادرب ولى معالجة وقزو كميا كبيرب م‬
‫البيانا ج الحواسي توفر ميزا السروة العالية للمعالجة وامكانية قزو بيانا‬
‫كليرب‪ ،‬ل لك استادمت بشكل واسع بدا في توليد ومعالجة الرسولج‬
‫احتو الحواسي ولى انظمة رسول تقليدية ذا سروة والية‪ ،‬ذاكرب كبيرب‪ ،‬ذاكرب‬
‫قالة ذاكرب اإلطار العازل ‪ ،(frame buffer‬ابهزب ورض‪ ،‬ابهزب ادقال ملل‬
‫لوحة المفاتيح والفأرب‪ ،‬ابهزب اقراج ملل الطابعا ج‬
‫رسول الحاسوب تشمل العديد م تطبيقا الحاسوب الماتلفة وومليا تكوي‬
‫الصور و ي تعتمد ولى مكونا الحاسوب والبرمجيا ‪ ،‬الشكل ‪1.1‬ج‬

‫‪17‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.1‬ماطط منظومة رسول الحاسوبج‬

‫في ا الفصل سنركز ولى بعض المفا يل العامة والتي لها دور مهل في فهل رسول‬
‫الحاسوب وفهل العمليا التي سنتطرق لها في الفصول العحقةج‬

‫المتجهات ‪Vectors‬‬ ‫‪1.2‬‬


‫والتي‬ ‫ي أحد الطرق المستادمة في التحليل ابتجا ي في الرياضيا‬ ‫المتجها‬
‫تستادل في العديد م التطبيقا الماتلفةج‬
‫بعض القياسا ب يكفي أو تحدد كميتها فقط‪ ،‬فع يكفي أو نقول أثر ووب مقدارا ا‬
‫‪ 15‬نيوت ولى بسل بل يج أو نحدد اتجا ها‪ ،‬ووند تصادل سيارتي ب تعتمد‬
‫األضرار النابمة ولى مقدار القوب فقط بل وولى اتجا ها ‪.‬المتجه و كمية تحدد‬
‫بصفتي ‪ ،‬ويمتها واتجا هاج‬
‫للتعامل مع الكميا المتجهة يتل استادال تمليل رياضي ندسي يسهل ولى الدارس‬
‫التعامل مع ه الكميا ج انظر الشكل ‪1.2‬ج‬

‫‪18‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.2‬المتجه والرموز المستادمة معهج‬

‫يملل المتجه ندسيا بقطعة مستقيل‪ ،‬كما في الشكل ‪ ،1.2‬حيث او النقطة )‪ (A‬ي‬
‫نقطة البداية التأثير للمتجه والنقطة )‪ (B‬ي نقطة النهاية‪ ،‬ويرمز للمتجه‬
‫او باستادال حرف واحد يُكت‬ ‫باستادال حرفي يوضع فووهما سهل ملل الرمز‬
‫باط سميك وغامع ملل )‪ (S‬أو باستادال حرف واحد يوضع فووه رسل سهل ملل‬
‫ج‬
‫المتجها توضح كيفية الحركة م نقطة الى اقرىج الشي المهل و او المتجه له‬
‫طول وله اتجاهج‬
‫مقدار المتجه و وبارب و طول ا المتجه‪ ،‬فيملل الطول مقدار الكمية فقط‪ ،‬وأما‬
‫اتجاه المتجه فيملل ابتجاه للكمية ال ُمقاسة في الفضا والتي يتل تحديد ا و طريع‬
‫زوايا اويلر‪(Euler).‬‬
‫المتجها مهمة بدا في رسول الحاسوب قصولا في ومليا التحويل التي‬
‫سناتي وليها بحقا ج‬
‫إليجاد متجه بي نقطتي ‪ ،‬ببساطة يتل طرح النقطتي ج‬

‫‪19‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.3‬ايجاد متجه بي نقطتي ج‬

‫في الشكل ‪ 1.3‬فاو‬


‫‪V = P2 – P1‬‬
‫)‪V = (x2 – x1, y2 – y1) = (6 – 1, 7 – 3) = (5, 4‬‬
‫في المتجها ثعثية اببعاد فاو وملية الحساب مشابهة الى المتجها ثنائية اببعادج‬
‫‪V = P2 – P1‬‬
‫)‪V = (x2 – x1, y2 – y1, z2 – z1) = (Vx, Vy, Vz‬‬
‫وليه فاو النقطتاو )‪ P2(7, 10, 5))،(P1(2, 1, 3‬كما في الشكل ‪ ,1.4‬ستولداو‬
‫المتجهة‬
‫)‪V = (7 – 2, 10 – 1, 5 – 3) = (5, 9, 2‬‬

‫‪20‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.4‬متجه ثعثي اببعادج‬

‫ناك ودد م العمليا المهمة التي نحتاج الى معرفة كيفية انجاز ا مع المتجها ‪:‬‬

‫حساب طول المتجه ‪Calculation of Vector Length‬‬ ‫‪‬‬


‫اطوال المتجها م السهولة حسابها في المتجها ثنائية اببعاد‬

‫وك لك في المتجها ثعثية اببعاد‬

‫بمع المتجها ‪Vector Addition‬‬ ‫‪‬‬


‫بمع متجهي يتل حسابه ببساطة بإضافة المكونا المتقابلة في المتجهي شكل ‪1.5‬ج‬
‫)‪V1 + V2 = (V1x + V2x , V1y + V2y‬‬

‫‪21‬‬
‫اساسيات الرسم بالحاسوب‬

‫ونفس الشي بالنسبة للمتجه ثعثي اببعادج‬

‫شكل ‪ :1.5‬بمع متجهاوج‬

‫الضرب العددي للمتجها ‪Scalar Multiplication of Vectors‬‬ ‫‪‬‬


‫ضرب المتجه بقيمة وددية تتل بضرب كل واحد م مكونا المتجه بالقيمة‬
‫العددية )‪ (s‬شكل ‪1.6‬ج‬
‫)‪sV = (sVx, sVy‬‬

‫شكل ‪ :1.6‬ضرب متجه بقيمة ودديةج‬

‫الضرب العددي )‪Scalar Product (dot product‬‬ ‫‪‬‬


‫وتكت ولى الشكل التالي ‪a . b‬‬
‫م الممك حسابه بثني م المتجها كما يلي‪:‬‬
‫) ( ‪a . b = |a| × |b| × cos‬‬
‫‪22‬‬
‫اساسيات الرسم بالحاسوب‬

‫حيث او‬
‫| ‪ | a‬يملل طول المتجه ‪a‬‬
‫| ‪ | b‬يملل طول المتجه ‪b‬‬
‫ي الزاوية بي المتجه ‪ a‬والمتجه ‪b‬‬
‫تمال الزاوية‬ ‫ل لك فهي وملية ضرب طول ‪ a‬في طول ‪ b‬في بي‬
‫المحصورب بينهما الشكل ‪ 1.7‬ج‬

‫الشكل ‪ :1.7‬حساب الضرب العدديج‬

‫وم الممك حسابه بالطريقة التالية‪ ،‬الشكل ‪1.8‬‬


‫‪a · b = ax × bx + ay × by‬‬

‫شكل ‪ :1.8‬طريقة اقرى لحساب الضرب العدديج‬

‫‪23‬‬
‫اساسيات الرسم بالحاسوب‬

‫نفس الشي بالنسبة للعثي اببعاد حيث يحس كما يلي‬


‫‪a · b = ax × bx + ay × by + az × bz‬‬
‫ضرب المتجه )‪Vector Product (cross product‬‬ ‫‪‬‬
‫وملية ضرب متجهي ‪ a × b‬لينتج متجه يكوو ومودي ولى المتجهي ‪،‬‬
‫شكل ‪1.9‬ج‬

‫شكل ‪ :1.9‬ضرب متجهي ليكوو الناتج متجهج‬


‫م الممك حساب ضرب المتجهي ليكوو الناتج متجه كما يلي‬
‫‪a × b = |a| |b| sin(θ) n‬‬
‫حيث او‬
‫|‪ |a‬تملل طول المتجه ‪a‬‬
‫|‪ |b‬تملل طول المتجه ‪b‬‬
‫الزاوية بي المتجهي ‪a, b‬‬
‫‪ n‬متجه بوحدب واحدب ومودي ولى المتجه ‪ a‬والمتجه ‪b‬‬

‫المصفوفات ‪Matrix‬‬ ‫‪1.3‬‬


‫الصور باي حال م ابحوال وند التعامل معها في الحاسوب ستكوو ولى شكل‬
‫مصفوفة‪ ،‬والمصفوفة ي وبارب و شبكة م ابوداد او ابروالج‬

‫‪24‬‬
‫اساسيات الرسم بالحاسوب‬

‫ولى كل حال‪ ،‬باستادال ومليا المصفوفا م الممك او ننجز كلير م العمليا‬


‫الرياضية التي تتطلبها ومليا رسول الحاسوب بسروةج في ادناه بعض طرق كتابة‬
‫المصفوفا ج‬

‫ناك العديد م العمليا التي م الممك القيال بها مع المصفوفا ‪ ،‬في ادناه بعض‬
‫العمليا المهمة التي تجرى ولى المصفوفا والتي ربما نحتاج لها في رسول‬
‫الحاسوب‪:‬‬

‫الضرب بعدد ‪Scalar Multiplication‬‬ ‫‪‬‬


‫انجاز ا ببساطة‬ ‫الممك‬ ‫او وملية ضرب المصفوفة بقيمة وددية م‬
‫بضرب كل ونالر المصفوفة بالقيمة العدديةج‬

‫‪25‬‬
‫اساسيات الرسم بالحاسوب‬

‫بمع المصفوفا ‪Matrix Addition‬‬ ‫‪‬‬


‫بمع مصفوفتي تنجز بجمع العنالر المتقابلة في كع المصفوفتي ‪ ،‬مع‬
‫معحظة او تكوو المصفوفتاو بنفس الحجلج‬

‫‪ ‬ضرب المصفوفا ‪Matrix Multiplication‬‬


‫م الممك ضرب مصفوفتي ببعض طالما او ودد ابومدب في المصفوفة ابولى‬
‫يساوي ودد الصفوف في المصفوفة اللانيةج‬
‫وليه‪ ،‬إذا كاو لدينا المصفوفا ))‪ (A(m×n) , B(n×q‬فاو وملية الضرب بينهما‬
‫ستكوو‬
‫‪C=A.B‬‬
‫حيث او )‪ C(m×q‬تحس ونالر ا كما يلي‪:‬‬

‫= ‪Cij‬‬

‫‪26‬‬
‫اساسيات الرسم بالحاسوب‬

‫بحظ او ضرب المصفوفا ليس تبادلي‪ ،‬حيث او‬


‫‪AB ≠ BA‬‬

‫تبديل المصفوفة ‪Matrix Transpose‬‬ ‫‪‬‬


‫تبديل المصفوفة ‪ A‬يكت ولى شكل ‪ ،AT‬والتبديل ي وملية تبديل لفوف‬
‫المصفوفة مع اومدتها‪ ،‬ملال‬

‫تطبيقات رسوم الحاسوب‬ ‫‪1.4‬‬

‫ناك مقولة تقول "الصورب أفضل م ألف كلمة"‪ ،‬و ي للدبلة ولى امكانية‬
‫استادال الصور للتعبير و افكارنا وتوبهاتنا والكلير م المعلوما بطرق‬
‫رسومية بدل م الحديث ونها والتي احيانا ب يمك ايصال الفكرب بسهولة و‬
‫ا فاو الحاسوب استادل بشكل واسع الرسول للتعبير و‬ ‫طريع الكلما ‪ ،‬م‬
‫الكلير م المعلوما والبيانا في الحاسوبج‬
‫رسول الحاسوب تطبع في الصناوة‪ ،‬الف ‪ ،‬التسلية‪ ،‬التعليل‪ ،‬الط ‪ ،‬الدفاع‪ ،‬لور‬
‫ابومار الصناوية وغير ا الكليرج تطبيقا رسول الحاسوب م الممك تصنيفها‬
‫الى مجاميع رئيسية تملل غالبية تطبيقا الحاسوب وليس بميعهاج‬

‫التصميم باستخدام الحاسوب )‪Computer Aided Design (CAD‬‬ ‫‪.1‬‬


‫تستادل بتصميل البنايا ‪ ،‬السيارا ‪ ،‬الطائرا ‪ ،‬السف ‪ ،‬الحواسي ‪ ،‬وغير ا‬ ‫‪‬‬
‫الكليرج‬
‫الكيانا تعرض ولى شكل اطارا سلكية تملل الشكل الااربي‪ ،‬شكل ‪1.10‬ج‬ ‫‪‬‬
‫حقيبة البرمجيا الاالة توفر محيط متعدد النواف ج‬ ‫‪‬‬

‫‪27‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.10‬نموذج م التصميل باستادال الحاسوبج‬

‫‪ .2‬عرض الرسوم ‪Graphic Representation‬‬


‫تستادل إلنتاج توضيح لتقرير او ورض شرائح لتستادل مع العارضا ج‬
‫تستادل بشكل وال بقتصار التقارير المالية‪ ،‬ابحصا ا ‪ ،‬ابوتصاد‪ ،‬الرياضيا ‪،‬‬
‫العلولج‬
‫كملال ولى ذلك الرسول البيانية الماتلفة بشكل وال‪ ،‬شكل ‪1.11‬ج‬

‫شكل ‪ :1.11‬بعض طرق ورض المعلوما بطريقة رسوميةج‬

‫‪28‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ .3‬فن الحاسوب ‪Computer Art‬‬


‫يستادل في الفنوو الجميلة والف التجاريج‬
‫يتضم برامج فنوو فرشاب الرسل‪ ،‬حقيبة الرسول )‪ ،(paint‬حقيبة التصميل‬
‫بالحاسوب‪ ،‬الحركة بالحاسوبج‬
‫ملال ولى ذلك افعل كارتوو‪ ،‬ابوعنا ‪ ،‬تصميل الشعارا وغير ا‪ ،‬شكل ‪1.12‬ج‬

‫شكل ‪ :1.12‬لور بستادال الحاسوب في مجال الف ج‬

‫‪ .4‬التسلية ‪Entertainment‬‬
‫لناوة ابفعل‪ ،‬الصور المتحركة‪ ،‬الموسيقى التصويرية‪ ،‬وروض التلفزيووج م‬
‫الممك استادال الرسول في افعل الكارتوو المتحركة شكل ‪1.13‬ج‬

‫شكل ‪ :1.13‬لور و استادال الحاسوب لرسول وبرامج التسليةج‬

‫‪29‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ .5‬صناعة االلعاب‬
‫تركز ولى التفاول بي المستادل والحاسوب‪ ،‬ايجاد الحلول لموضوع الكلفة‪ ،‬تجن‬
‫الحسابا الزائدب شكل ‪1.14‬ج‬

‫شكل ‪ :1.14‬استادال الرسول في ابلعابج‬

‫‪ .6‬التعليم والتدريب‬
‫الحاسوب يولد نماذج م تجارب الفيزيا والكيميا ‪ ،‬انظمة مالية واوتصادية تستادل‬
‫كمساودا تعليميةج‬
‫ابنظمة الفسيولوبية‪ ،‬ابتجا ا السكانية‪ ،‬او ابهزب ملل الماططا الملونة التي‬
‫تساود المتدربي لفهل تشغيل النظالج ابهزب قالة تستادل برمجيا للتدري ‪ ،‬ملل‬
‫محاكاب ويادب السيارا ‪ ،‬السف ‪ ،‬الطائرا شكل ‪1.15‬ج‬

‫شكل ‪ :1.15‬استادال الرسول في التدري والتعليل المحاكاب ج‬

‫‪30‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ .7‬التصورات ‪Visualization‬‬
‫التصورا العلميةجج انتاج تمليع رسومية ألغراض ولمية‪ ،‬ندسية‪ ،‬ومجمووة‬
‫البيانا الطبية شكل ‪1.16‬ج‬

‫شكل ‪ :1.16‬استادال الرسول في ومليا التصورج‬

‫‪ .8‬معالجة الصور ‪Image Processing‬‬


‫رسول الحاسوب تستادل لالع الصورج معالجة الصور ي تقنيا تطبيقية لتحوير‬
‫وتفسير الصور الموبودب ملل الصور الفوتوغرافية والتلفزيوو‪ ،‬التطبيقا الطبية‬
‫ملل ‪ ، X-ray, MRI‬العمليا الجراحية باستادال الحاسوب و ي تقنية‬
‫التطبيقا الطبية لنم بة ودراسة الوظائف الفيزيائية لتصميل ابطراف الصناوية ‪،‬‬
‫تحسي الصور‪ ،‬رؤية الماكنة الروبو شكل ‪1.17‬ج‬

‫شكل ‪ :1.17‬معالجة الصورج‬

‫‪31‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ .9‬واجهات المستخدم الرسومية ‪Graphic User Interfaces‬‬


‫النواف في الحاسوب وابيقونا ‪ ،‬القوائل وغير ا‪ ،‬شكل ‪1.18‬ج‬

‫شكل ‪ :1.18‬نواف ووابها الحاسوب باستادال الرسولج‬

‫التوليد ‪Rendering‬‬ ‫‪1.5‬‬


‫ي وملية توليد لورب م موديل ثنائي او ثعثي اببعادج رسل لورب المش هد وفق ا‬
‫لوضع الكاميراج ضبط ويل ونصر الصورب لصورب الكاميرا وفق ا ال ى الكيان ا الت ي‬
‫ترى بواسطة الكاميرا لكل ونصر لوربج‬

‫ترتي تقديل الكيانا ‪object order rendering‬‬ ‫‪‬‬


‫تقديل كل كياو مرب في الووت الواحد‬ ‫‪‬‬
‫بالنسبة للكيانا التي تتطابع‬ ‫‪‬‬
‫كتابة ونصر الصورب للكياو ال ي في الوابهة إذا كاو الكياو معتل‬ ‫‪o‬‬
‫مزج ألواو ونصر الصورب إذا كاو الكياو المتطابع شفاف‬ ‫‪o‬‬

‫‪32‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.19‬تطابع الكيانا‬

‫‪ ‬توليد الصور بطريقة االنبوب ‪Rendering Pipeline‬‬


‫قطوا توليد الصورب او ما يطلع وليها طريقة ابنبوب يملل الاطوا‬
‫المتعاوبة التي يج اتباوها إلنجاز ومل معي و ي مشابهة لعملية سرياو سائل‬
‫في انبوب حيث يصل السائل نهاية ابنبوب بشكل متتابع ‪ ،‬و نا في حالة توليد‬
‫واظهار الصور فهناك ودد م الاطوا التي يج او تنجز تباوا واحدب بعد‬
‫ابقرى و ي ممللة بالشكل ‪1.20‬ج‬

‫شكل ‪ :1.20‬قطوا تقديل الصوربج‬

‫‪ 1.6‬ما هو عنصر الصورة في رسوم الحاسوب‬


‫اي لورب تتكوو م مجمووة م النقاط‪ ،‬كل واحدب منها تسمى ونصر الصوربج‬
‫ونصر الصورب ماتصر لعنصر الصورب باإلنكليزية ‪ picture element‬ي‬
‫واحدب م ودد م النقاط الصغيرب بدا والتي تولد تمليل للصورب في ذاكرب‬
‫الحواسي ‪ ،‬او كامل المجمووة له ه العنالر يتل احتوائه في مصفوفة ثنائية اببعاد‬
‫والتي تستادل لتوليد الصوربج‬

‫‪33‬‬
‫اساسيات الرسم بالحاسوب‬

‫ونالر الصورب في الصورب م الممك اوادب انتابها باي حجل م دوو ظهور‬
‫نقاط مرئية او مربعا ج‬
‫باقتصار فاو ونصر الصورب و ألغر وحدب وابلة للعنونة أي يحمل ونواو في‬
‫ال اكرب ج‬
‫وحيث او مسح الشاشة يتل م اليسار الى اليمي وم ابولى الى ابسفل‪ ،‬فاو م‬
‫المعتاد ابشارب الى ونصر الصورب ال ي في الزاوية اليسرى العليا م الصورب‬
‫باستادال ابحداثيا ]‪ [0,0‬و ا يعني او اتجاه محاور الصورب و كما يلي‬
‫اتجاه المحور ‪ X‬و م اليسار الى اليمي ج‬
‫اتجاه المحور ‪ Y‬و م ابولى الى ابسفل‪ ،‬قعفا لما و متعارف وليه في‬
‫الرياضيا ‪ ،‬حيث اتجاه المحور ‪ Y‬يكوو لألولىج‬
‫ه المربعا يسمى‬ ‫تايل لورب لسمكة‪ ،‬ضع شبكة مربعا وليهاج كل واحد م‬
‫ونصر لوربج لازو ه الصورب فاو الحاسوب ببساطة يسجل رول يملل القيمة‬
‫اللونية لكل ونصر لورب مربع ‪ ،‬بحظ الشكل ‪1.21‬ج كلما زاد ودد المربعا في‬
‫الشبكة كلما كانت الصورب أكلر وضوحا ودوةج‬

‫شكل ‪ :1.21‬شبكة ونالر الصورب لتمليل لوربج‬

‫‪34‬‬
‫اساسيات الرسم بالحاسوب‬

‫إذا مسكت مكبرب بالقرب م شاشة الحاسوب بدربة كافية‪ ،‬فأنك م الممك او‬
‫ه‬ ‫ترى او الشاشة تتكوو م معيي م المربعا الصغيرب بداج كل واحد م‬
‫المربعا يسمى ونصر لورب‪ ،‬وكل ونصر لورب م الممك او يملل بواحد م‬
‫معيي ابلواو‪ ،‬ناك شدب اضا ب تظهر ولى الشاشة بألواو ماتلفةج م الممك‬
‫ايضا او ترى ونصر الصورب وند تكبير الصورب الى أكلر م ضعفي باستادال‬
‫الرسال )‪ (paint‬ال ي في حاسبتك انظر الشكل ‪ 1.22‬والشكل ‪1.23‬ج‬

‫شكل ‪ :1.22‬تكبير قطوط متقاطعةج‬

‫شكل ‪ :1.23‬تكبير بز م الوردب المحدد بالمستطيل ابحمر ج‬

‫‪35‬‬
‫اساسيات الرسم بالحاسوب‬

‫الصور النقطية والمتجهة ‪Raster and Vector Images‬‬ ‫‪1.7‬‬

‫الصور بشكل وال تنقسل الى نووي وفقا لطريقة قلقها او قزنها‪ ،‬ولك تشترك‬
‫بصفة مهمة و ي اوتماد بميع الصور التي تعرض ولى الشاشة ولى فكرب‬
‫استادال ونصر الصورب‪ ،‬ويتل التعامل معها وند الازو داقل الحاسوب ولى انها‬
‫روميةج وندما تستادل برامج الرسول لضبط ملفاتك‪ ،‬فانه م المهل بدا او تفهل‬
‫الفرق بي الملف النقطي والملف المتجه‪ ،‬م المهل بدا او تفهل ما ي الصور‬
‫النقطية وما ي الرسول المتجه‪ ،‬شكل ‪1.24‬ج‬

‫شكل ‪ :1.24‬بز م لورب نقطيةج‬

‫‪ 1.7.1‬الصورة النقطية ‪Raster Image‬‬


‫الصور النقطية تستادل شبكة م النقاط المفردب تدوى ونصر لورب ‪Pixel‬‬
‫و ي مربعا لغيرب بدا ملونةج وندما يتل مسح الصورب ضوئيا‪ ،‬فاو الصورب‬
‫تتحول الى تجمع لعنالر الصورب تدوى الصورب النقطية )‪(Raster Image‬ج ا‬
‫التحول يجعل تلك الصور أسهل للتحوير والمعالجةج الصور التي لها الصيغ‬
‫)‪ (JPEG, GIF‬ي نموذج للصور الروميةج ل لك فاو الصور النقطية تعرف‬
‫باستادال ونصر الصوربج الصور النقطية م النوع ال ي يصع تحجيمه اي تغيير‬
‫‪36‬‬
‫اساسيات الرسم بالحاسوب‬

‫حجمه دوو حدوث تشوه في الصورب‪ ،‬حيث او الصورب النقطية تتأثر دوة وضوحها‬
‫وند تغيير حجمها بحظ الشكل ‪1.25‬ج‬

‫شكل ‪ : 1.25‬تكبير لورب نقطية الصورب التي في المربع العلوي ج‬

‫‪ 1.7.2‬الرسوم المتجه ‪Vector Graphics‬‬


‫ليس كل الصور تستادل ونصر الصورب وند توليد اج الرسول المتجهة تتكوو م‬
‫قطوط‪ ،‬منحنيا واشكال بدل ونصر الصورب‪ ،‬فهي تعتمد المعادب الرياضيةج‬
‫برامج رسول المتجه تالع متوالية م المعادب الرياضية التي تحدد اتجاه الاط‪،‬‬
‫سمكه‪ ،‬ولونهج كل بز م الرسول المتجهة م الممك تحديله وم الممك تغيير‬
‫حجمه بسهولة‪ ،‬شكل ‪1.26‬ج‬

‫شكل ‪ :1.26‬تكبير رسل متجه الصورب التي في المربع العلوي ج‬

‫‪37‬‬
‫اساسيات الرسم بالحاسوب‬

‫ملفا المتجه تكوو لغيرب الحجل الى دربة كبيرب‪ ،‬و ي ب يتل حسابها لكل‬
‫ونصر لورب‪ ،‬وم الممك تحجيمها الى أي نسبة كما أشرناج الصور المتجهة‬
‫تالع ابتدا باستادال برامج الرسولج انت ب يمكنك بحث الصور او قزنها كملف‬
‫متجه بدوو استادال برمجيا ج م الممك ‪ ،‬تحويل المتجه الى نقطي بسهولةج غالبية‬
‫برمجيا المتجه توفر اقتيارا الصور النقطيةج فاذا فتحت ملف المتجه ملع في‬
‫الفوتوشوب فسوف تعرض كصورب نقطية بشكل اليج‬
‫الرسول المتجهة فعالة بدا في رسل ابشكال البيانية والرسولج لكنها ب تستادل وادب‬
‫لازو الصور الفوتوغرافيةج‬
‫الصور في الرسول المتجهة ي اساسا نقاط ترتبط باطوط بأشكال ماتلفةج فملع‬
‫لولف الاط ‪ AB‬فسيتل ابشارب الى نقطتاو يربط بينهما قط مستقيل‪ ،‬لك لولف‬
‫ابشكال ابكلر تعقيدا فأننا نحتاج الى نقاط أكلر وطرق أكلر تعقيداج الشكل ‪1.27‬‬
‫يوضح نفس ابشكال بالصور النقطية والصور المتجهةج‬

‫شكل ‪ :1.27‬الفرق بي الصورب النقطية والصورب المتجهج‬

‫التعريف وشدة الوضوح ‪Definition and Resolution‬‬ ‫‪1.8‬‬

‫التعريف )‪ (definition‬و ودد النقاط ونالر الصورب التي تكوو الصورب‪،‬‬


‫و ي اببعاد ودد ابومدب في الصورب مضروب في ودد الصفوف ج الصورب‬
‫‪38‬‬
‫اساسيات الرسم بالحاسوب‬

‫التي ورضها ‪ 640‬ونصر لورب وارتفاوها ‪ 480‬ونصر لورب لها تعريف و‬


‫‪ 640‬في ‪ 480‬ونصر لورب‪ ،‬وال ي يكت كما يلي ‪640x480‬ج‬
‫م بان اقر‪ ،‬شدب الوضوح مصطلح يستادل مرا مع التعريف ‪ ،‬ويتل حسابه‬
‫بعدد النقاط في وحدب المساحة‪ ،‬ويشار له نقطة بابنج ‪ dots per inch (DPI),‬ج‬
‫به ا فاو شدب الوضوح تجعل م الممك او ننشئ وعوة بي ودد ونالر الصورب‬
‫في الصورب والحجل الحقيقي لتمليل الصورب ولى اببهزب الماديةج او شدب الوضوح‬
‫التي تساوي ‪ 300 dpi‬تعني وبود ‪ 300‬ومود و ‪ 300‬لف في ابنج المربع‬
‫الواحد وال ي سيولد ‪ 90000‬ونصر لورب بابنج المربع الواحدج‬
‫ارتفاع ويمة شدب وضوح الشاشة‪ ،‬يؤدي الى اظهار نصو ولور أكلر وضوحاج‬
‫الشكل ‪ 1.28‬يظهر شكل بيضوي تل اظهاره في شاشة حاسوب دوة الوضوح لها‬
‫)‪ (10 × 10‬ونفس الشكل تل ورضه في شاشة دوة الوضوح لها )‪(20 × 20‬ج‬

‫شكل ‪ :1.28‬دوة الوضوحج‬

‫االلوان االولية (االساسية)‬ ‫‪1.9‬‬


‫كل نقطة ولى الشاشة اما او تكوو مضا ب او معتمة‪ ،‬ل لك فأننا نحتاج بت واحدب او‬
‫أكلر لكل ونصر لورب للسيطرب ولى شدب ابضا ب في مواوع الشاشة الماتلفةج‬
‫ابلواو التي تظهر ولى شاشة الحاسوب ي تملل شدب اضا ب كل ونصر لورب‪،‬‬
‫ه ابلواو ي نتيجة مزج ابلواو ابساسية في الحاسوب‪ ،‬وابلواو ابساسية في‬

‫‪39‬‬
‫اساسيات الرسم بالحاسوب‬

‫ماتلفة‬ ‫رسول الحاسوب ي ثعث ابحمر‪ ،‬ابقضر‪ ،‬ابزرق تمزج معا بنس‬
‫لالع ألواو ماتلفة شكل ‪1.29‬ج‬

‫شكل ‪ :1.29‬توضيح ابلواو ابولية ابساسية ج‬

‫‪ 1.9.1‬نماذج ابلواو ‪Color Models‬‬


‫اي لورب في الحاسوب تملل بمصفوفة ثنائية اببعاد حيث او كل قلية تسمى‬
‫ونصر لوربج تمليل الصور باستادال الحاسوب تعني قلع مصفوفة‪ ،‬حيث او كل‬
‫قلية في المصفوفة تحتوي ولى ويمة تملل شدب الضو ج القيل التي تازو في الاعيا‬
‫تشفر بواسطة ودد م البتا والتي تحدد اللوو او شدب ابضا ب لعنصر الصوربج‬
‫ا يسمى العمع اللوني ‪color depth‬ج ناك ودد م نماذج العمع اللوني‬
‫المعتمدب‪:‬‬

‫‪ ‬الصور النقطية ذا اللوو اببيض وابسود ‪Black and White Bitmap‬‬


‫و ي تملل بازو بت واحد في كل قلية‪ ،‬حيث او البت الواحد يسمح بتمليل‬
‫ويمتي و ما يملعو اللوو اببيض وابسود ج‬

‫‪ ‬الصور النقطية التي تملل مع ‪ 16‬لوو ‪Bitmap with 16 Colors‬‬

‫‪40‬‬
‫اساسيات الرسم بالحاسوب‬

‫في ا النوع م الصور يتل استادال ‪ 4‬بتا لتمليل ويمة كل قلية‪ ،‬و ا يساود‬
‫ولى تعريف ‪ 24‬ويمة ماتلفة م شدب ابضا ب لكل ونصر لورب‪ ،‬و ي تملل ‪16‬‬
‫دربة م اللوو الرمادي م ابسود الى اببيض او ‪ 16‬لوو ماتلفج م الجدير‬
‫بال كر فاو الرسول باستادال لغة ‪ C++‬يسمح باستادال ‪ 16‬لوو فقط‪ ،‬وم الممك‬
‫حساب القيمة اللونية ومعرفة اللوو باستادال أربع بتا ‪ ،‬كل بت م البتا اللعث‬
‫ابولى يملل ويمة لونية م ابلواو ابساسية بينما البت الرابع يملل ابضا ب‬
‫بالتأكيد فاو استادال اللوو يعني اسناد ويمة )‪ (1‬للبت ال ي يقابل اللوو المستادل‬
‫ولفر إذا لل يتل استادال ذلك اللوو‪ ،‬اما البت الرابع فاو اسناد ويمة واحد له يعني‬
‫او اللوو سيكوو مضي او مشرق وإذا اسند له القيمة لفر فاو اللوو سيكوو‬
‫معتل نسبيا وكما يلي‬

‫‪ ‬الصور النقطية التي لها ‪ 256‬لوو ‪Bitmap with 256 Colors‬‬


‫وند استادال بايت واحد لتمليل ويمة كل قلية‪ ،‬فانه م الممك تعريف ‪ 28‬م‬
‫شدب ابضا ب الماتلفة‪ ،‬و ا يعني م الممك او يكوو لنا ‪ 256‬دربة ماتلفة‬
‫م اللوو الرمادي تتراوح بي ابسود واببيض او ‪ 256‬لوو ماتلفج‬

‫‪41‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬بدول ابلواو )‪Color Palette (color map‬‬


‫ي طريقة بميلة لتعريف بدول لأللواو التي م الممك او تحتويها الصورب‪،‬‬
‫لكل لوو ناك فهرس رول دبلة ج بدول ابلواو و مجمووة محددب م‬
‫ابلواو‪ ،‬ووادب يستادل لتحسي دوة الصورب وند وبود محددا برمجية او‬
‫محددا مكونا الحاسوبج او ودد البتا التي تحفظ لشفرب كل فهرس في‬
‫بدول ابلواو تحدد ودد ابلواو التي م الممك او تستادلج ل لك‪ ،‬إذا شفر‬
‫الفهرس بلمانية بتا فسيكوو م الممك او تعرف ‪ 256‬لوو وابل لعستادالج‬
‫وليه فاو كل قلية م المصفوفة ثنائية اببعاد التي تملل الصورب سوف تحتوي‬
‫ولى رول يشير الى فهرس بدول اللوو ال ي يج او يستادلج الصورب التي‬
‫لها ألواو تشفر او تحدد وفقا له ه التقنية تسمى لورب لونية مفهرسة‬
‫‪indexed color image‬ج‬

‫‪ ‬ابلواو الحقيقية "‪"True Colors‬‬


‫ا التمليل يسمح بتمليل الصورب بتعريف كل مكوو لوني م ابلواو ابساسية‬
‫)‪ (RGB) (Red, Green, Blue‬ابحمر‪ ،‬ابقضر‪ ،‬وابزرق ج كل ونصر‬
‫لورب يملل بواسطة مجمووة تشمل ابلواو اللعث‪ ،‬كل لوو يشفر باستادال بايت‬
‫واحد يسمح لقيل تتراوح م ‪ ، 255-0‬ول لك فاو كل ونصر لورب يملل‬
‫باستادال ‪ 24‬بت ‪ 8‬بتا لكل لوو م ابلواو ابساسية و ا يسمح بالحصول‬
‫ولى أكلر م ‪ 16‬مليوو لوو ماتلف ج م الممك اضافة مكوو رابع يجعل‬
‫امكانية اضافة معلوما تتعلع بالشفافية ونسيج الصورب‪ ،‬وبه ا فاو كل ونصر‬
‫لورب سيتل تشفير ا باستادال ‪ 32‬بتج‬
‫وند مزج ابلواو ابولية بنس محددب م الممك او تالع ألواو ماتلفة اوتمادا‬
‫ولى نس ابلواو التي تمزج كما في الشكل ‪1.30‬ج‬

‫‪42‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.30‬مزج ابلواوج‬

‫‪ 1.10‬تقنيات العرض ‪Display Technologies‬‬

‫يتل اظهار الصور ولى الشاشة التي ي م ابهزب ابقراج والتي تسمح بتوفير‬
‫التمليل المرئيج معلوما الصورب ه تأتي م الحاسوب‪ ،‬ولك بطريقة غير‬
‫مباشربج في الواوع فاو المعالج ب يرسل المعلوما بشكل مباشر الى الشاشة‪ ،‬لك‬
‫يعالج المعلوما القادمة م ذاكرب الولول العشوائي )‪ ،(RAM‬وم ثل يرسلها‬
‫الى كار الشاشة )‪ (graphic card‬ال ي بدوره يحول المعلوما الى نبضا‬
‫كهربائية‪ ،‬والتي ترسل بحقا الى الشاشةج‬
‫ناك طريقتاو م الممك او نعرض فيها الصورب ولى الشاشة و ما المسح‬
‫النقطي والمسح العشوائي )‪(Random scan and Raster scan‬ج‬

‫‪ 1.10.1‬المسح النقطي ‪Raster Scan‬‬


‫اي لورب تقسل الى متوالية م ابشرطة وادب بشكل افقي تدوى قطوط المسح‬
‫)‪ (scan lines‬وال ي م الممك او يقسل بشكل اضافي الى ونالر لورب مقطعه‬
‫وابلة للمعالجة في الحاسوب‪ ،‬الشكل ‪1.31‬ج‬

‫‪43‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.31‬مقطع لورب ولى شكل ونالر لوربج‬

‫تازو معلوما الصورب في مساحة ذاكرب تدوى اإلطار العازل )‪(frame buffer‬‬
‫و ي مساحة ذاكرب تحمل مجمووة م ويل شدب ابضا ب لكل نقاط الشاشةج ه‬
‫المعلوما المازونة يتل استعادتها م ذاكرب اإلطار العازل وترسل او تطبع ولى‬
‫الشاشة بواوع لف واحد )‪ (scan line‬في كل مربج‬
‫في نظال المسح النقطي‪ ،‬حزمة ابلكترونا تمسح الشاشة لف واحد في كل مرب‬
‫م ابولى لألسفلج وندما تتحرك حزمة ابلكترونا ولى كل لف فاو حزمة‬
‫النقاط في الصف تضا وتطفأ لالع نموذج م النقاط المضيئةج‬
‫معلوما الصورب تازو فيما يسمى اإلطار العازل ‪Refresh Buffer or‬‬
‫‪Frame Buffer‬ج اإلطار العازل يازو في ال اكرب ولى شكل مصفوفة معنونة‬
‫بطريقة ابفضلية للصفوف بمعنى قزو الصف ابول ثل الصف اللاني وبعد ا‬
‫الصف اللالث و ك ا ج‬
‫مساحة ال اكرب ه اإلطار العازل تحتوي ويل شدب ابضا ب لجميع نقاط الشاشةج‬
‫ويل ابضا ب المازونة يتل استعادتها م ال اكرب وتطبع او ترسل ولى الشاشة سطر‬
‫واحد قط مسح في كل ووت كما واضح في الشكل ‪1.32‬ج‬
‫كل نقطة شاشة يشار لها ولى انها ونصر لوربج في نهاية كل قط مسح ‪scan‬‬
‫‪ line‬فاو حزمة ابلكترونا تعود الى الجان ابيسر م الشاشة لتبدأ بعرض قط‬
‫المسح التاليج‬
‫‪44‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.32‬شكل توضيحي للمسح النقطيج‬

‫‪ 1.10.2‬المسح العشوائي (مسح المتجه) )‪Random Scan (Vector Scan‬‬


‫في ه التقنية‪ ،‬فاو حزمة ابلكترونا توبه فقط الى بز م الشاشة والتي سيتل‬
‫رسل الصورب فيها بدل م المسح م اليسار الى اليمي وم ابولى الى ابسفل كما‬
‫في المسح النقطيج‬
‫معلوما الصورب تازو كمجمووة م اوامر رسل الاطوط في مساحة ال اكرب‬
‫التي يشار لها باسل )‪(refresh display file‬ج لعرض لورب معينة‪ ،‬فاو النظال‬

‫‪45‬‬
‫اساسيات الرسم بالحاسوب‬

‫يركز في مجمووة ابيعازا او ابوامر في ملف العرض‪ ،‬ليرسل كل واحد م‬


‫مكونا الاط بدورهج بعد او يتل معالجة اوامر رسل بميع الاطوط‪ ،‬فاو دورا‬
‫النظال ‪ system cycles‬تعود الى اول ايعاز قط في القائمةج‬
‫ورض المسح العشوائي تل تصميمه لرسل كل مكونا قطوط للصورب بمعدل ‪30‬‬
‫الى ‪ 60‬مرب في اللانية كما في الشكل ‪1.33‬ج‬

‫شكل ‪ :1.33‬طريقة المسح العشوائيج‬

‫‪ 1.11‬شاشات العرض ‪Types of Monitors‬‬

‫شاشا الحاسوب وادب ي بأنواع ماتلفة وود تطور في الحقبة ابقيرب بشكل‬
‫ه‬ ‫كبير‪ ،‬سنتطرق في ا الفصل الى ثعث انواع رئيسية إلوطا فكرب وامة و‬
‫الشاشا ‪ ،‬و ناك انواع اقرى ب يسع المجال ل كر ا في ا الكتاب وم رغ‬
‫بزيادب المعرفة فيمكنه الربوع الى الكت المتاصصة في ا المجالج‬

‫‪46‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 1.11.1‬شاشات انابيب االشعة الكاثودية )‪Cathode Ray Tube (CRT‬‬

‫و ي انابي مصنووة م الزباج حيث تحتوي ولى واذفة الكترونا تبعث او‬
‫تق ف الكترونا ‪ ،‬والتي يتل توبيهها بواسطة مجال مغناطيسي باتجاه الشاشة التي‬
‫تحتوي ولى ونالر فوسفاتية لغيرب مضيئة‪ ،‬لتكوو نقاط ونصر لورب تبعث‬
‫ضو وند الطدال اإللكترونا بهاج‬
‫انابي ابشعة الكاثودية ي م ابهزب ابقراج ابولي في نظال الرسول وتسمى‬
‫احيانا وارض الفيديو ‪video monitor‬ج العنصر الرئيس في وارض الفيديو و‬
‫انبوب ابشعة الكاثودية‪ ،‬الموضح في الشكل ‪1.34‬ج‬

‫شكل ‪ :1.34‬مكونا شاشة ابنبوب الكاثوديةج‬

‫ومل انبوب ابشعة الكاثودية بسيط بدا‪:‬‬

‫‪1‬ج واذف ابلكترونا يبعث حزمة م ابلكترونا اشعة كاثودية ج‬


‫‪2‬ج حزمة ابلكترونا تمر قعل نظال التركيز وانظمة ابنحراف والتي توبهها‬
‫الى مواوع قالة ولى الشاشة المطلية بمادب الفسفورج‬

‫‪47‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪3‬ج وندما تصطدل حزمة ابلكترونا بالشاشة‪ ،‬فاو الفسفور يبعث )‪ (emits‬نقاط‬
‫لغيرب م الضو في كل مووع يتصل مع حزمة ابلكترونا ج‬
‫‪4‬ج ي ترسل الصورب بتوبيه حزمة ابلكترونا مرب ثانية فوق نفس نقاط الشاشة‬
‫بسروةج‬

‫شاشات البلور السائل )‪Liquid Crystal Display (LCD‬‬ ‫‪1.11.2‬‬

‫الشي ابكلر باذبية بشاشا ‪ LCD‬بالنسبة لكلير م الناس و ليس طريقة‬


‫ورض او تكوي الصور ولك كونها مستوية بدربة تساود ولى وضعها ولى‬
‫الجدار بسهولةج‬
‫او النوع القديل م شاشا ابنابي الكاثودية يستادل ثعث واذفا الكترونا ج‬
‫فكر بهل ولى انهل ثعث فرش رسل سريعة بدا‪ ،‬ودويقة بدا والتي تروص لألمال‬
‫والالف‪ ،‬فتطبع لور متحركة ولى الجز الالفي للشاشة والتي م الممك رؤية‬
‫ه الصور وندما تجلس امال الشاشةج‬
‫الشاشة المستوية ‪ LCD‬وشاشا البعزما تعمل بشكل ماتلف تماماج إذا بلست‬
‫بالقرب م شاشة مستوية سوف تعحظ او الصور تتكوو م معيي الكتل‬
‫ه العنالر ي اضوية حمرا ‪،‬‬ ‫الصغيرب تسمى ونالر الصوربج كل واحدب م‬
‫قضرا ‪ ،‬او زروا مفصولة بشكل بيد والتي م الممك تحويلها الى تشغيل او‬
‫ودل تشغيل بسروة كبيرب لتكوي لور ملونة متحركةج يسيطر ولى ونصر‬
‫الصورب بطريقة ماتلفة تماما في شاشا ‪ LCD‬والبعزماج‬
‫شاشا ‪ LCD‬تستادل قدوة النظارا الشمسية لتحويل ونصر الصورب الملوو‬
‫الى تشغيل او ودل تشغيلج في الجز الالفي م الشاشة ناك ضو ساطع كبير‬
‫يضي باتجاه المشا دج امال ذلك‪ ،‬ناك المعيي م ونالر الصورب‪ ،‬كل واحد‬
‫منها يتكوو م مساحا لغيرب تدوى ونصر لورب ثانوي ملوو باأللواو‬
‫ابحمر‪ ،‬ابقضر‪ ،‬او ابزرقج كل ونصر لورب له مرشح زباج مستقط قلفه‬
‫‪48‬‬
‫اساسيات الرسم بالحاسوب‬

‫)‪ (polarizing glass filter‬واقر امامه بزاوية مقدار ا ‪ 90‬دربةج ا يعني او‬
‫ونصر الصورب يبدو وادب معتلج بي مرشحا ابستقطاب ابثناو ناك بلورا‬
‫سائلة قيطية ‪ nematic liquid crystal‬لغيرب وملتوية ي تشير الى حالة م‬
‫البلورا السائلة حيث تكوو الجزيئا منظمة بشكل متوازي لكنها ليست بمستوى‬
‫واحد ‪ ،‬والتي م الممك او تتحول الكترونيا الى وضع التشغيل او ودل التشغيل‬
‫ملتوية او غير ملتوية ج فعندما تتحول الى وضع ودل التشغيل فأنها ستدور الضو‬
‫ال ي يمر بها قعل ‪ 90‬دربة‪ ،‬وتأثير ذلك سيكوو السماح للضو بالمرور قعل‬
‫مرشحا ابستقطاب ابثناو وتجعل ونالر الصورب تبدو مضيئةج اما وندما يتل‬
‫التحويل الى وضع التشغيل‪ ،‬فأنها سوف ب تدور الضو ‪ ،‬وال ي سيمنع م وبل‬
‫واحدب م المستقطبا وستبدو ونالر الصورب معتمةج كل ونصر لورب يتل‬
‫السيطرب وليه بواسطة ترانسيستور مفرد و و مكوو الكتروني لغير وال ي م‬
‫الممك يحولها الى وضع تشغيل او ودل تشغيل ودب مرا كل ثانيةج‬

‫شكل ‪ :1.35‬مكونا شاشة البلورا السائلةج‬

‫‪49‬‬
‫اساسيات الرسم بالحاسوب‬

‫شاشات البالزما ‪Plasma Display‬‬ ‫‪1.11.3‬‬

‫شاشة البعزما تبدو مشابهة لشاشة ‪ ،LCD‬لكنها تعمل بطريقة مختلفة تماما‪ :‬فكل‬
‫عنصر صورة هو مصباح فلورسنت مجهري يتوهج مع البالزما‪ .‬البالزما هي‬
‫شكل حار جدا من الغاز وهو غاز متأين حيث تكون الذرات الغازية منزوعة‬
‫االلكترونات‪ ،‬وبالتالي يصبح الغاز مكون من أيونات موجبة الشحنة وإلكترونات‬
‫سالبة الشحنة‪ .‬وبالطبع هذا الغاز يتوهج في ظروف خاصة مثل أن يكون الغاز‬
‫داخل مجال كهربي كبير ناتج عن فرق جهد عالي مما يؤدي إلى انجذاب‬
‫اإللكترونات إلى الطرف الموجب واأليونا إلى الطرف السال فتصطدل‬
‫اإللكترونا مع األيونا مما يؤدي إلى اثارب ذرا الغاز في البعزما‪ ،‬وينتج و‬
‫ه ابثارب تحرر طاوة في لورب فوتونا ضوئية كما و الحال في مصابيح‬
‫الفلوريسنت التي نستادمها لإلنارب‪ ،‬شكل ‪1.36‬ج‬
‫تعتمد شاشة البعزما ولى طبقة م قعيا البعزما متنا ية الصغر مستقلة يصل‬
‫ودد ا الى مئا اببف تحتوي ولى غازا نبيلة باإلضافة الى نسبة م الزئبعج‬
‫وندما تتعرض ه الاعيا الى نبض كهربائي فإنها تتو ج ويتكوو بداقلها ما‬
‫يعرف بالــــبعزما ‪PLASMA‬ج شاشا البعزما ب ينصح بها للحاسوبج‬

‫شكل ‪ :1.36‬مكونا شاشة البعزماج‬

‫‪50‬‬
‫اساسيات الرسم بالحاسوب‬

‫شاشات الصمامات الثنائية الباعثة للضوء ‪Light Emitting‬‬ ‫‪1.11.4‬‬


‫)‪Diodes Monitors (LED‬‬
‫مصطلح شاشات الصمامات الثنائية يشير بشكل عام الى شاشة بلوحة ‪ LCD‬مع‬
‫صمامات ثنائية باعثة للضوء لإلضاءة الخلفية‪.‬‬
‫شاشات الصمامات الثنائية )‪( (Diodes‬الصمام الثنائي هو موصل يقوم بتمرير‬
‫التيار الكهربائي في اتجاه ويمنع مروره في اتجاه اخر) هي اخر انواع الشاشات في‬
‫االسواق حاليا‪ .‬وهي شاشات مستوية‪ ،‬او منحنية قليال والتي تستخدم صمامات‬
‫ثنائية باعثة للضوء لإلضاءة الخلفية‪.‬‬
‫الصمامات الثنائية الباعثة للضوء ال تستخدم تقنيات مصابيح المشعات الكاثودية‬
‫الباردة )‪ .(cold cathode fluorescent lamps‬بدال من ذلك‪ ،‬ضوء الصمام‬
‫الثنائي يضيء الشاشة بواحدة من طريقتين‪ ،‬او بكليهما‪ .‬ضوء ‪ LED‬االبيض يتم‬
‫تجميع حول حافة الشاشة وينتشر على الشاشة بشكل متساوي‪ ،‬وهذا يسمى اضاءة‬
‫الحافة‪ .‬كذلك ضوء ‪ LED‬يوضع بمسافات تباعد متساوية خلف الشاشة‪ ،‬وهي اما‬
‫ان يتم السيطرة او عدم السيطرة عليها مع اختيار "العتمة المحلية"‪ .‬إذا كنت تنظر‬
‫لشاشة ‪ LED‬يجب النظر الى العتمة المحلية على انها اختيار تشغيل او عدم‬
‫تشغيل‪.‬‬

‫شكل ‪ :1.37‬الفرق بي شاشة البلور السائل وشاشة الصماما اللنائيةج‬

‫‪51‬‬
‫اساسيات الرسم بالحاسوب‬

‫ان ميزة استخدام الضوء الخلفي في شاشات ‪ LED‬هو لحفظ الطاقة‪ .‬من الممكن ان‬
‫يقال عنها انها تستخدم طاقة اقل من )‪ (CRT, LCD‬وهي تعتبر صديقة للمحيط‬
‫الى درجة جدا كبيرة‪.‬‬
‫كذلك فهي توفر نوعية لون جيدة‪ ،‬وضوح‪ ،‬ومعدل تنشيط الشاشة أسرع‪ .‬ان خيار‬
‫العتمة المحلية موجودة في عدد من الموديالت والتي تسمح بضبط اللون بشكل‬
‫جيد‪.‬‬

‫شكل ‪ :1.38‬مكونا شاشة الصماما اللنائيةج‬

‫‪ 1.12‬الصور الرقمية ‪Digital Images‬‬


‫الصورب الرومية ي الصورب التي تازو في الحاسوبج افتراضيا فاو بميع ابهزب‬
‫الحاسوب المستادمة ه ابيال ي رومية‪ ،‬البيانا تملل بشكل مقطع )‪(discrete‬‬
‫باستادال نماذج م ابروال اللنائية بتا التي م الممك او تفسر ولى شكل‬
‫اروال ضم مديا محددب وبدوة محدودبج بالمقابل‪ ،‬فاو الصور التي نلتقطها في‬
‫محيطنا ي تناظري )‪(analog‬ج ي تتكوو م تفاول معقد بي الضو والكيانا‬
‫ا‬ ‫المادية‪ ،‬لتنتج نتيجة لمتغيرا مستمرب بالطول الموبي وشدب ابضا بج وسل م‬

‫‪52‬‬
‫اساسيات الرسم بالحاسوب‬

‫الضو ينعكس الى شبكة العي ‪ ،‬حيث او الاعيا في شبكة العي تحول الضو الى‬
‫نبضا وصبية والتي يفسر ا الدماغ كمحفزا بصريةج‬
‫الصور الرومية تتكوو م ونالر الصوربج وادب‪ ،‬ونالر الصورب تنظل بمصفوفة‬
‫مستطيلةج حجل الصورب يحدد م قعل ابعاد مصفوفة ونالر الصوربج لإلشارب‬
‫الى ونصر لورب محدد ضم المصفوفة فم الممك او تعرفه باستادال‬
‫ابحداثيا والتي تملل رول الصف والعمود او بكعل اقر فأنك تملل البعد ضم‬
‫محور ‪ x‬والبعد ضم المحور ‪ y‬و نقطة ابلل ج‬
‫افرض أنك ترغ التقاط لورب وتمليلها في الحاسوب‪ ،‬باستادال الماسح الضوئي‪،‬‬
‫او الكاميرا ولى سبيل الملالج وحيث إنك ب تملك ذاكرب قزو غير منتهية فيج‬
‫وليك تحويل ابشارب التناظرية الى شكل رومي أكلر محدوديةج وملية التحويل ه‬
‫تسمى اق العينا ‪sampling‬ج نظرية العينا ي بز مهل في رسول الحاسوب‪،‬‬
‫ا نعحظ او‬ ‫تعزيز ودول ه النظرية ورا كل م التقاط الصور ومعالجتها‪ ،‬م‬
‫الصورب الرومية ب يمك تشفير ا وشوائيا الى مستويا م التفاليل وب يمك او‬
‫يكوو لها وشوائيا مديا ألواو واسعةج بدب و ذلك‪ ،‬يج او تتنازل و بز م‬
‫الدوة‪ ،‬وذلك باقتيار طرق مناسبة ألق العينا والازو بمعنى تمليل الصورب‬
‫المستمرب ولى شكل رومي ج‬

‫‪ 1.13‬تمثيل الصورة النقطية ‪Raster Image Representation‬‬


‫حلول رسول الحاسوب لمشكلة تمليل الصورب و تجزئة الصورب الى شبكة منتظمة‬
‫تدوى النقطية )‪(raster‬ج كل قلية في الشبكة ي قلية م الصورب ويطلع وليها‬
‫مصطلح يتداول بكلرب في الصور و و ونصر الصورب ج وونصر الصورب و‬
‫وحدب لغيرب بدا في الصورب‪ ،‬لونه منتظل‪ ،‬لونه المفرد يملل وينة ضو متقطعة‬
‫م الصورب التي تل التقاطهاج في غالبية التطبيقا ‪ ،‬الصور النقطية تأق شكل شبكة‬
‫قطوط مستقيمة وادب تحتوي ولى ودب ابف م ونالر الصورب كما في‬
‫الشكل ‪1.39‬ج الصور النقطية توفر اساس ثنائي اببعاد متعامد لكي يتل تحديد‬

‫‪53‬‬
‫اساسيات الرسم بالحاسوب‬

‫احداثيا ونصر الصوربج بطبيعة الحال‪ ،‬احداثيا ونصر الصورب تبدأ م الصفر‬
‫والتي ي نقطة ابللج‬

‫شكل ‪ :1.39‬تمليل الصورب ب اكرب اإلطار العازلج‬

‫او ومليا الرسل ولى الشاشة تتطل معرفة احداثيا الجهاز وكيفية الولول الى‬
‫النقاط الماتلفة ولى الشاشةج او غالبية اببهزب تتا نظال احداثيا بحيث تكوو‬
‫نقطة ابلل في الزاوية العليا اليسرى كما في الشكل ‪1.40‬ج‬

‫شكل ‪ :1.40‬شاشة الحاسوبج‬

‫‪54‬‬
‫اساسيات الرسم بالحاسوب‬

‫اي شي يوضع ولى الشاشة يج او يكوو نسبة الى نقطة ابلل هج نظال‬
‫ا م الممك او يحصل ولى مووع كياو باستادال القياسا ابفقية‬ ‫ابحداثيا‬
‫والعموديةج القياس ابفقي يعتمد ولى المحور ‪ x‬وال ي يتحرك م نقطة ابلل‬
‫باتجاه اليمي ج اما القياس العمودي يستادل ابحداثي ‪ y‬وال ي يتحرك م نقطة‬
‫ابلل باتجاه ابسفل‪ ،‬كما في الشكل ‪1.41‬ج‬

‫شكل ‪ :1.41‬تمليل ابحداثيا ولى شاشة الحاسوبج‬

‫‪ 1.14‬احداثيات شبكة الشاشة‬


‫سبع وأشرنا الى او الشاشة تتكوو م شبكة م النقاط التي تسمى ونالر الصورب‬
‫ولغرض ونونة ه النقاط ونصر الصورب والولول لها برمجيا سوا كاو‬
‫لغرض أضا تها وتلوينها او اطفائها فأننا سنشير الى اي ونصر لورب ولى‬
‫الشاشة باستادال نظال ابحداثيا وبابوتماد ولى او تكوو نقطة ابلل ي‬
‫الزاوية اليسرى العليا كما في الشكل ‪1.42‬ج‬

‫‪55‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :1.42‬شبكة الصورب ولى الشاشةج‬

‫تحديد احداثيا مووع ونصر لورب ولى الشاشة سيكوو زوج م ابروال‬
‫الصحيحة يحدد مووع تقاطع الشبكة بي الصفوف وابومدب‪ ،‬اي انه يملل رول‬
‫الصف والعمود كما و الحال وند العمل ولى المصفوفا ج‬
‫ملال‪ ،‬مسار قط رياضيا لمتعدد قطوط نهايا قطوطه ولى الشاشة ي ‪((1, 1),‬‬
‫))‪ (4, 2), (0,4‬موضحة بالشكل ‪1.43‬‬

‫شكل ‪ :1.43‬رسل قط ولى شبكة الشاشةج‬

‫‪56‬‬
‫اساسيات الرسم بالحاسوب‬

‫بحظ في الشكل ‪ 1.43‬مكبر الى دربة بدا والية لغرض التوضيح فاو‬
‫ابحداثيا تاتلف و تلك التي استادمت في الرياضيا ‪ ،‬نقاط ابقتعف ي‬

‫‪1‬ج او نقطة ابلل ي في الزاوية اليسرى العليا‪ ،‬م الممك تحويلها بعمليا‬
‫رياضية الى وسط الشاشةج‬
‫‪2‬ج او احداثي المحور ‪ X‬يزداد م اليسار الى اليمي كما سبع وأشرنا‪ ،‬ول لك‬
‫فأننا في مصفوفا الرياضيا كاو ا المحور يملل الصفوف بينما في‬
‫الرسول و يملل ابومدبج‬
‫‪3‬ج ونفس الشي ينطبع ولى احداثيا المحور ‪ ،Y‬حيث انها تزداد لألسفل و ه‬
‫ابحداثيا كانت تملل ابومدب في مصفوفا الرياضيا بينما في رسول‬
‫الحاسوب تملل الصفوفج‬
‫الشكل ‪ 1.44‬يوضح فكرب ونونة ونصر لورب واحد م الشكل النقطي )‪(10×10‬‬
‫مع اضا ب ونصر الصورب ا في مووع الشاشة التي احداثياتها ي )‪(6, 3‬ج‬

‫شكل ‪ :1.44‬تمليل النقطة ولى شبكة الشاشةج‬

‫فكرب ونونة ونصر الصورب لها مميزا ودب‬


‫‪1‬ج ي تجن حدود ونصر الصورب بجز م العدد الصحيح دائما ونصر‬
‫الصورب يشار لها بأروال اوداد لحيحة ج‬
‫‪2‬ج تسهل تمليل دويع للكياوج‬

‫‪57‬‬
‫اساسيات الرسم بالحاسوب‬

‫المسح‬ ‫تحويع‬ ‫قوارزميا‬ ‫‪3‬ج تسهل العمليا التي تتضم في ودد م‬


‫الضوئي وفي ومليا النقطية ابقرىج‬

‫‪ 1.15‬بعض الدوال والمالحظات البرمجية المهمة‬


‫رسول الحاسوب تعتمد بشكل رئيس ولى ايعازا برمجية تساود ولى اظهار الشكل‬
‫المطلوب ولى الشاشة‪ ،‬ومع اننا سنعتمد في شرح مفردا الرسول في ا الكتاب‬
‫م قعل تعلل الطريقة البرمجية ألنشا الرسول وليس استادال الدوال الجا زب‬
‫نظرا ألننا نتوبه به ا الكتاب الى طلبة كليا الحاسوب فضع و الراغبي‬
‫التاصص في ا المجال‪ ،‬اب اننا سنضع مجمووة مهمة م الدوال الجا زب‬
‫للرسول في نهاية الكتاب لكي تعل الفائدب للجميع وتسهيل الرسول لم يتعلل القواود‬
‫ابساسية في برمجة ه الدوالج في ا الجز سنركز ولى بعض الدوال التي‬
‫تستادل بكلرب في ومليا برمجة الرسول باستادال لغة البرمجة ‪ C++‬وربما‬
‫البعض منها يستادل مع كل برنامج رسولج‬
‫بداية ببد م ابشارب او الموبه الملف ال ي يستادل مع برامج الرسول ويضم‬
‫في البرنامج ضم ابسطر ابولى م كل برنامج و‬
‫‪ GRAPHICS.H‬‬

‫ا الملف يحتوي ولى تعاريف وتوضيح لجميع دوال الرسولج دوال الرسول في‬
‫)‪ (C++‬لها اثناو م الفئا او ابطوار‪ :‬دوال رسول طور النصو ‪ ،‬ودوال طور‬
‫الرسول بشكل والج سنركز في ا الكتاب ولى دوال طور الرسولج ل لك ربما‬
‫سنستادل دوال رسول طور النصو دوو او نتطرق الى تفاليلهاج‬
‫ه الدالة المكتبية تكت في بداية البرنامج بالصيغة التالية‪:‬‬

‫>‪#include<graphics.h‬‬

‫‪58‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ Initgraph‬‬

‫الى طور الرسول فأننا سنستادل دالة تدوى‬ ‫للتحويل م طور النصو‬
‫)‪(initgraph‬ج ه الدالة تستادل في بداية أي برنامج رسول ضم الدالة الرئيسية‬
‫مع دالة اقرى اقتيارية وكما يلي‪:‬‬
‫ا ابوعو ‪int gd=DETECT, gm; //‬‬ ‫م الممك ابستغنا و‬
‫اما الدالة التالية فهي الزامية في كل برامج رسول الحاسوب‬
‫;)“ ‪initgraph (&gd, &gm, “c:/tc/bgi‬‬

‫ه الدالة يتل استدوائها لكي نبتدأ طور الرسول ولى الحاسوب‪.‬‬


‫‪ initgraph‬تبتدأ نظال الرسول وذلك بتحميل برنامج تشغيل الرسول م القر‬
‫وبعد ا وضع النظال في طور الرسولج ك لك فاو ‪ initgraph‬تضبط بميع‬
‫اودادا الرسول اللوو‪ ،‬المووع الحالي‪ ،‬ناف ب العرضجج الخ ولى ابودادا‬
‫ابفتراضية ثل تضبط ‪ graphresult‬الى الصفرج الرموز المستادمة مع ا‬
‫ابيعاز ي‪:‬‬

‫‪ gd ‬و و ماتصر )‪(graphdriver‬جج و رول لحيح يحدد برنامج تشغيل‬


‫الرسول ال ي يستادلج اذا لل تك ترغ به ه القيمة فم الممك اوطا ‪gd‬‬
‫ويمة ثابتة م النوع المتعدد )‪ (enumerator‬والمستادمة في برنامج تشغيل‬
‫الرسوما ج‬

‫‪ gm ‬و ي ماتصر )‪(graphmode‬جج و ي رول لحيح يحدد طور الرسول‬


‫اببتدائي مالل نستادل ‪ ، gd=DETECT‬اذا استادمنا ‪،gd=DETECT‬‬
‫فاو ‪ gd‬سيتل ضبطها الى اولى دربة وضوح متوفرب للبرامج المكتشفةج إذا لل‬
‫تك ترغ به ه القيمة فم الممك اوطا ‪ gd‬ويمة ثابتة م النوع المتعدد‬
‫)‪ (enumerator‬والمستادمة بطوار الرسوما ج‬

‫‪59‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ c:/tc/bgi ‬و ي تملل مسار الدليل )‪ (path_to_driver‬وال ي يتل البحث فيه‬


‫و برنامج تشغيل الرسول اوب )‪(*.BGI‬ج و ناك حالتاو‪:‬‬
‫‪ ‬إذا لل يجد برنامج تشغيل الرسول ناك‪ ،‬يتل البحث و ‪ initgraph‬في الدليل‬
‫الحاليج‬
‫‪ ‬إذا كاو مسار برنامج التشغيل ب يحتوي شي ‪ ،‬فاو ملف التشغيل يج او‬
‫يكوو في الدليل الحاليج‬

‫مالحظة‪ :‬في بميع البرامج الواردب في ا الكتاب وليك التحقع م مسار الدليل‬
‫ال ي في حاسبتك وتغييره في البرنامج وفقا ل لك‪ ،‬باعف ذلك ربما ستصدر لك‬
‫رسالة قطأج‬

‫الرمز ”& ” يستادل في ‪ initgraph‬لتمرير ونواو اللوابتج‬


‫‪‬‬ ‫) (‪closegraph‬‬

‫ه الدالة تعيد تحويل الشاشة م طور الرسول الى طور النصو ج في حالة ودل‬
‫استادال ه الدالة فربما ستكوو ناك تأثيرا غير مرغوب بهاج ملال‬
‫>‪#include<graphics.h‬‬
‫>‪#include<conio.h‬‬
‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬
‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬
‫; "‪cout << "Press any key to close the graphics mode...‬‬
‫;)(‪getch‬‬
‫;)(‪closegraph‬‬

‫‪60‬‬
‫اساسيات الرسم بالحاسوب‬

return 0;
}
 cleardevice()

‫ه الدالة لتنظيف الشاشة م بميع الرسول وك لك الواو الالفيةج ملال‬ ‫تستادل‬

#include <graphics.h>
#include <conio.h>
main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
cout << "Press any key to clear the screen." ;
getch();
cleardevice();
cout<< "Press any key to exit..." ;
getch();
closegraph();
return 0;
}

 putpixel(x, y, color)

‫ه واحدب م ا ل الدوال وابكلر استاداما في رسول الحاسوبج تستادل ه‬


‫الدالة لرسل نقطة ولى الشاشة اضا ب نقطة ولى الشاشة في المووع المحدد‬

61
‫اساسيات الرسم بالحاسوب‬

‫اللوو المحددج ابلواو الممكنة في ‪ C++‬ي ‪ 16‬لوو كما‬ ‫)‪ (x, y‬وحس‬
‫أسلفناج‬
‫>‪#include<graphics.h‬‬
‫>‪#include<conio.h‬‬
‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬
‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬
‫;)‪putpixel(250, 250, RED‬‬
‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬

‫)(‪ getmaxx‬‬

‫ه الدالة تستادل للحصول ولى أكبر ويمة ‪ x‬لشاشة الرسول اي انها تعيد القيمة‬
‫العليا لعرض الشاشة اي ودد النقاط او ونالر الصورب باتجاه المحور ‪ x‬ج ملال‬

‫>‪#include<graphics.h‬‬
‫>‪#include<iostream.h‬‬
‫>‪#include<conio.h‬‬

‫)(‪main‬‬
‫{‬

‫‪62‬‬
‫اساسيات الرسم بالحاسوب‬

int gd = DETECT, gm, max_x;

initgraph(&gd, &gm,"C:\\TC\\BGI");

max_x = getmaxx();

cout << “max length of screen in x-axis = “ << max_x ;

getch();
closegraph();
return 0;
}

 getmaxy()

‫ لشاشة الرسول اي أكبر ودد م‬y ‫ه الدالة تستادل للحصول ولى أكبر ويمة‬
‫ ج ملال‬y ‫ اي ودد ونالر الصورب باتجاه المحور‬،‫النقاط ولى طول ارتفاع الشاشة‬

#include<graphics.h>
#include<iostream.h>
#include<conio.h>

main()
{
int gd = DETECT, gm, max_y;
initgraph(&gd,&gm,"C:\\TC\\BGI");

63
‫اساسيات الرسم بالحاسوب‬

‫;)(‪max_y = getmaxy‬‬
‫; ‪cout << “max length of screen in y-axis = “ << max_y‬‬
‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬

‫اتاو الدالتاو مفيدتاو بدا لكي يتل تحديد مووع النقطة المراد اظهار ا ولى الشاشة‬
‫دوو او نتجاوز حدود الشاشةج‬
‫‪‬‬ ‫)(‪delay‬‬

‫تحس ويمة تووف المعالج و العمل بالملي ثانيةج ل ا نستادمها وندما نرغ‬
‫بتأقير التنفي ألي سب ج واحد م ابستاداما المهمة ي وندما ترغ بتحريك‬
‫نقطة او أكلر ولى الشاشة‪ ،‬حيث إذا تركت النقطة تتحرك بسروة المعالج فأنه ربما‬
‫يكوو م الصع معحظتها او متابعتها‪ ،‬ل لك نعمل تأقير لها وبه ا ستكوو‬
‫الحركة ابطأ‪ ،‬وم الممك ايضا بستاداما اقرى نستادل ا ابيعازج الصيغة‬
‫القواودية ي‬
‫;)‪delay(100‬‬

‫ملال‪ :‬مطلوب كتابة برنامج لرسل نقطة ولى الشاشة تتحرك م اليمي الى اليسارج‬

‫>‪#include<graphic.h‬‬
‫{ )(‪main‬‬
‫;‪int gd=DETECT, gm‬‬
‫;)“ ‪initgraph (&gd, &gm, “c:/tc/bgi‬‬

‫‪64‬‬
‫اساسيات الرسم بالحاسوب‬

int x = getmaxx( ) ; // ‫تحديد الحد ابيم للشاشة‬


for (int i=x ; i>=0 ; i--)
{
putpixe (i, 100, 5); // 5 ‫وضع نقطة بلوو رول‬
delay (250) ; // ‫تاقير ورض النقطة‬
putpixe (i, 100, 0); // ‫ازالة النقطة التي وضعت سابقا بتغير لونها الى اللوو ابسود لوو‬
‫قلفية شاشة الرسول‬
} closegraph(); }

‫ وبألواو ماتلفةج‬،‫ نقطة وشوائيا ولى الشاشة‬300 ‫ وضع‬:‫ملال‬

#include<graphic.h>
main() {
int gd=DETECT, gm;
initgraph (&gd, &gm, “c:/tc/bgi “);
int a, b, c, x, y ;
a = getmaxx( ) ;
b = getmaxy( ) ;
randomize( ) ;
for ( int i = 1 ; i < = 300 ; i++)
{
x = random(a) ;
y = random(b) ;
c = random (16) ;
putpixel (x, y, c) ;
} closegraph(); }

65
‫اساسيات الرسم بالحاسوب‬

‫‪66‬‬
‫اساسيات الرسم بالحاسوب‬

‫الفص الثاني‬
‫رسم الخطوط‬
‫‪LINES DRAWING‬‬

‫المقدمة‬ ‫‪2.1‬‬
‫في ا الفصل سنقدل مفا يل رسل الصورب ولى الشاشة كمجمووة م النقاطج اي‬
‫لورب م الممك او نتايلها ولى شكل مجمووة م النقاطج الفكرب و بتعريف‬
‫النقاط‪ ،‬والتي تملل بز م الصورب وندما تحاول رسمها‪ ،‬وبواسطة تقنيا مناسبة‬
‫يتل ورض ه النقاطج لعمل ذلك‪ ،‬فاو الشاشة يفترض انها تتكوو م ودد م‬
‫ونالر الصورب )‪ (pixels‬كل واحدب م ونالر الصورب ه تقابل نقطةج سيتل‬
‫اضا ب ونالر الصورب والتي تعتبر بز م الصورب التي ترغ برسمها وبه ا‬
‫فاو الصورب ستكوو مرئية ولى الشاشةج ا الفصل سيابرنا و التقنيا التي‬
‫تحدد ونالر الصورب والتي تكوو بز م الصورب وما ي المشاكل الماتلفة التي‬
‫ربما توابهنا قعل ه العمليةج وندما نحدد ونالر الصورب فاو المكونا المادية‬
‫تتكفل برسل الصوربج‬

‫تعاريف‬ ‫‪2.2‬‬
‫‪ ‬التنقيط ‪ Rasterization‬ي وملية حساب اي م ونالر الصورب توفر‬
‫افضل تقري او تكوو ابفضل وربا الى الاط المطلوب رسمه ولى‬
‫الشاشةج‬
‫‪ ‬تحويل المسح ‪ :Scan Conversion‬دمج التنقيط وتوليد الصورب بترتي‬
‫مسح الاطج‬

‫‪67‬‬
‫اساسيات الرسم بالحاسوب‬

‫تقنيات رسم النقطة‬ ‫‪2.3‬‬


‫تقنيا رسل الصورب تعتمد ولى نظال ابحداثيا الديكارتي ‪Cartesian‬‬
‫‪coordinate system‬ج كل نقطة يتل ونونتها باثناو م ابحداثيا )‪ (x, y‬و ما‬
‫يملع بعد ه النقطة و نقطة ابللج فملع )‪ p (x, y‬ي نقطة تبعد افقيا بمقدار‬
‫‪ x‬و نقطة ابلل ووموديا بمقدار ‪ y‬و نقطة ابلل كما في الشكل ‪2.1‬ج‬

‫شكل ‪ :2.1‬تمليل احداثيا اي نقطة ولى الشاشةج‬

‫او نعرضها ستملل ولى شكل نقاط مشتركة كما في الشكل‬ ‫ابو اي لورب نرغ‬
‫‪2.2‬ج‬

‫شكل ‪ :2.2‬ملال ولى نقاط ترسل لوربج‬

‫في الشكل ‪ 2.2‬لل يتل رسل قطوط مستمرب لك فقط مشا د لنقاط تل اضا تها‪،‬‬
‫وبسب لفا العي البشرية فأننا نرى الاطوط مستمرب وندما تكوو النقاط التي‬

‫‪68‬‬
‫اساسيات الرسم بالحاسوب‬

‫يتل اضا تها وريبة بدا م بعضج في الحقيقة كلما كانت النقاط أورب لبعض نرى‬
‫لورب أفضلج‬
‫في الشكل ‪ 2.3‬فاو الصورتاو تملعو حرف ‪ A‬لك الصورب التي ولى اليمي تبدو‬
‫أكلر وربا وشبها للحرف ‪ A‬م الصورب التي ولى اليسار والسب في ذلك بو‬
‫النقاط في الصورب التي ولى اليمي أكلر تقارب م تلك التي ولى اليسارج‬

‫شكل ‪ :2.3‬تملل لورب حرفج‬

‫او ودد النقاط في وحدب المساحة للشاشة تشير الى مصطلح يسمى دوة الوضوح‬
‫للشاشة )‪(resolution‬ج فكلما زاد ودد النقاط في وحدب المساحة للشاشة زاد‬
‫دوة الوضوح وبالتالي سنحصل ولى لورب أكلر وضوحا ونووية أفضل كنتيجة‬
‫فاو الشاشا التي لها دوة وضوح والية تكوو أكلر كلفة ج‬

‫‪ 2.4‬قياس النوعية لخوارزميات رسم خط جيد‬

‫انظر الى بعض اساسيا قوارزميا رسل الاط‪ ،‬سترى ما ي الشروط التي يج‬
‫او تتحقعج طالما نفس الصورب م الممك او ترسل باستادال ودد م‬
‫الاوارزميا ‪ ،‬فاو بعضها يكوو أكلر مقبولية م غير ا‪ ،‬ألنها توفر لفا تمكننا‬
‫م رسل لور بنوويا أفضلج بعض ه المقاييس ندربها نا‪:‬‬

‫‪1‬ج الاط يج او يبدو مستقيل‪ :‬احيانا فاو الاطوط التي ترسل باوارزميا‬
‫رسل النقاط ب تظهر كلها مستقيمة كما في الشكل ‪2.4‬ج‬

‫‪69‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :2.4‬بعض نماذج الاطوط التي ترسل باستادال قوارزميا رسل الاطوطج‬

‫السب ليس بعيد لنبحث ونهج أي قوارزمية رسل نقطة سوف تعطي متوالية‬
‫م النقاط )‪ (x, y‬لقيل ماتلفة م ‪ x‬و ‪y‬ج في الحالة العامة‪ ،‬فاو ويل ‪(x,‬‬
‫)‪ y‬ربما ب تكوو اوداد لحيحة‪ ،‬م الممك او تكوو أي ويمة حقيقيةج‬
‫وليه‪ ،‬ماذا يج او نفعل؟ الحل ببساطة و تدوير القيلج ولى سبيل الملال‬
‫إذا كانت نقطتاو نقاط متعاوبة احداثياتهل )‪ (6.6, 15.4), (7.4, 16‬فأننا‬
‫وندما ندور القيمة ‪ 6.6‬ستصبح ‪ 7‬وك لك القيمة ‪ 15.4‬تصبح ‪15‬ج وليه‪،‬‬
‫فاو النقطة ابولى ستصبح )‪ (7, 15‬والنقطة اللانية ستكوو )‪,(7, 16‬‬
‫بحظ او الفرق بي )‪ (6.6 - 7.4‬كاو ‪ 0.8‬غالبا ونصر لورب واحد‬
‫لك وند العرض بعد التدوير ستظهراو نقطة واحدب‪ ،‬بينما النقاط‬
‫)‪ (15, 16‬ما نقاط ماتلفةج ل لك فاو مقطع الاط بدل او يظهر بالشكل‬
‫)‪ (a‬سيظهر بالشكل )‪ (b‬انظر الشكل ‪2.5‬ج‬

‫شكل ‪ :2.5‬تغير رسل النقاط وند تدوير الكسور‬

‫‪70‬‬
‫اساسيات الرسم بالحاسوب‬

‫بحظ نا او ميل الاط ود تغير‪ ،‬او متوالية م التغييرا بي النقاط‬


‫المتعاوبة يجعل الاطوط تبدو كما في الشكل ‪ 2.5‬قطوط متعربة ج‬

‫‪2‬ج الاط يج او ينتهي بشكل لحيح‪ :‬السب بيزال كما في النقطة السابقةج‬
‫بسب ودل الصحة والتقري ‪ ،‬فاو الاطوط ب تنتهي بشكل لحيحج اما‬
‫تقف أوصر م النقطة التي يج او تنتهي بها او تتمدد الى ما ورا نتيجة‬
‫النقطة؟ التقاطع وابتصال ب يتكوو بشكل لحيحج انظر الى الشكل ‪2.6‬ج‬

‫شكل ‪ :2.6‬تووف الاطوط نتيجة ومليا التقري ج‬

‫‪3‬ج المحافظة ولى شدب اضا ب ثابتة‪ :‬الصورب ترسل بتغير ابضا بج اي او‬
‫النقاط ولى طول الاط تكوو مضا بج طالما او شدب ابضا ب له ه النقاط‬
‫تكوو متجانسة‪ ،‬فسيكوو لدينا لورب مريحة للنظرج ه م الممك او‬
‫نعملها إذا كانت النقاط المراد اضا تها لها تباود متساوي بي واحدب‬
‫واقرىج ولى كل حال‪ ،‬بسب ودل دوة الاوارزمية‪ ،‬فأننا احيانا سننتهي‬
‫بنقاط اما تكوو متقاربة بدا او متباودب أكلر وليع بي واحدب واقرىج م‬
‫الواضح او نقطتي متقاربتي واحدب لألقرى وند اضا تها تجعل النقاط‬
‫تبدو براوةج النتيجة سنحصل ولى قط أكلر اشراوا في ابزا منه وليس‬
‫مشروا في ابزا اقرىج النتيجة سيكوو قط يبدو متعربا وغير متجانسج‬

‫‪71‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪4‬ج يج او يرسل الاط بسروة‪ :‬ه حالة قالة في الرسل التفاولي‪ ،‬والتي يتل‬
‫رسل الاطوط فيها مباشرب يتل الرسل وابظهار بنفس الووت ‪real time‬ج‬
‫طالما ليس ناك مشاكل وديدب مع الاطوط المستقيمة‪ ،‬فاو ابشكال المعقدب‬
‫ربما تحتاج الى حسابا اطول وبل تحديد الرسل التاليج وليه فاو الصورب‬
‫ترسل بأبزا ووطع‪ ،‬والتي تبدو غير سارب او حتى مزوجة بووت ماج‬

‫‪5‬ج يج او يكوو مستمر‪ :‬الاط ال ي يرسل يج او ب يحتوي ولى فراغا اثنا‬


‫رسمه اب إذا كاو المطلوب رسل قط منقط او قط متقطع ج‬

‫‪6‬ج يج او تكوو له كلافة ثابتة‪ :‬اي او الاط المرسول يج او تكوو ودد ونالر‬
‫الصورب او النقاط التي تملل كل نقطة ب تتجاوز ونصر لورب واحدج‬

‫رسم الخطوط‬ ‫‪2.5‬‬


‫الاط و العنصر ابس اس ف ي الرس ول و و و ادب ي ربط نقطت ي ج لرس ل ق ط‪ ،‬فأن ك‬
‫تحتاج الى نقطتي تملعو نهايتي الاط‪ ،‬وبينهما م الممك رسل الاطج‬
‫إذا كانت لدينا نقطتاو تم لعو نهاي ة الا ط‪ ،‬ف او المش كلة ي كيفي ة حس اب ونال ر‬
‫الصورب الوسطية التي بينهما‪ ،‬بحيث تكوو مجمووة ونالر الصورب وريبة بدا م‬
‫الاط الملالي الحقيقي بحظ الشكل ‪2.7‬ج‬

‫شكل ‪ :2.7‬مقارنة بي الاط الحقيقي والاط ال ي يتل رسمه ولى الشاشةج‬

‫‪72‬‬
‫اساسيات الرسم بالحاسوب‬

‫رسل الاط ينجز بحساب المواوع الوسطية ولى طول مسار الاط بي مواوع نهايا‬
‫الاطج بهاز ابقراج يوبه ألمع او اضا ب ه المواوع بي نقاط النهايةج‬

‫‪ 2.5.1‬خوارزمية رسم الخط‬


‫او ابسط طريقة لرسل قط مستقيل ي بابوتماد ولى معادلة الميل وابوتراض‬
‫الديكارتي للاط المستقيل معادلة الاط المستقيل ‪ ،‬و ي‬
‫‪y=mx+c‬‬
‫حيث او ‪ m‬و الميل للاط و ‪ c‬و اوتراض تقاطع ‪y‬‬
‫إذا تل تحديد نهايتي قط باإلحداثيا ))‪ (A(ax, ay), B(bx, by‬كما في الشكل ‪2.8‬‬
‫فاو م الممك حساب ويل الميل ‪ m‬واوتراض ‪ y‬ال ي و ‪ c‬ه الطريقة تسمى‬
‫الطريقة التحليلية ج‬

‫شكل ‪ :2.8‬رسل قط بالطريقة التحليليةج‬

‫‪73‬‬
‫اساسيات الرسم بالحاسوب‬

‫نا قوارزمية اظهار الاط المستقيل تعتمد بشكل اساس ولى معادلة الاط المستقيل‪،‬‬
‫والحسابا التي تجرى ولى ونالرهج‬
‫ومنها يمك ايجاد مدى تغير ابحداثي‬ ‫ألي نقطة فاو ناك مدى لتغير ا ي‬
‫ابقر‬
‫يمك ايجاد‬ ‫بالمقابل م معرفة‬

‫طريقة استادال معادلة الاط المستقيل تعتبر م أسهل الطرق المستادمة‪ ،‬ي‬
‫ببساطة تستادل معادلة الاط المستقيل لتحديد النقاط الوسطية بي نقطة البداية‬
‫والنهاية‪ ،‬ه الطريقة تعتمد بشكل مباشر ولى تحليل معادلة الاط المستقيل‪ ،‬و ي‬
‫تتضم ومليا ضرب وبمع اروال حقيقية‪ ،‬وبالتالي فهي تتطل تدوير ابروال‬
‫الناتجة لغرض رسل ونصر الصورب في المووع المحددج‬
‫السؤال المهل نا و لو كانت لدينا نقطة ولى الاط النقطة الحالية ‪ ،‬فكيف م‬
‫الممك او نحصل ولى ويمة النقطة العحقةج طبعا ا يتل وذلك ولى اوتبار أحد‬
‫المحاور و القائد او الدليل وتتل زيادب ويمته بمقدار واحد في كل مرب‪ ،‬وم قعل‬
‫معادلة الاط المستقيل نستنتج ويمة ابحداثي ابقر التي تقابل ه القيمةج وليه فأننا‬
‫نحتاج او نحس النقطة المطلوب رسمها اوتمادا ولى النقطة السابقةج بشكل وال‬
‫فاو وملية حساب النقطة العحقة وملية ليست سهلة ول لك ناك ودد م‬
‫الاوارزميا تعالج ه المشكلة‪ ،‬فضع و مشاكل اقرى ليست به ه الدربة م‬
‫اب مية‪ ،‬بحظ الشكل ‪2.9‬ج‬

‫‪74‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :2.9‬اشكال ماتلفة تملل لعوبة اقتيار النقطة العحقة وند رسل قطج‬

‫في الشكل ‪ 2.9‬نعحظ او الاط المستقيل في الشكل م الممك او ينتج واحد م‬


‫اثني م الاطوط حس التقري ح ف الكسر او ببره ‪ ،‬وعمة ابستفهال في‬
‫الشكل تشير الى لعوبة اقتيار اي واحدب م ونالر الصورب يتل اقتيارهج‬
‫لرسل الاط بطريقة معادلة الاط المستقيل ببد بداية م ايجاد الميل للاط المستقيل‬
‫و ا يتل م استادال ويل نقاط البداية والنهاية ووفقا للععوة التالية‪:‬‬

‫بابوتماد ولى ويمة الميل نحدد اي م ابحداثيا سيكوو و القائد لكي تتل زيادته‬
‫بمقدار واحد في كل مرب‪ ،‬في حي ابحداثي ابقر يتل استارابه م معادلة الاطج‬
‫إذا كاو الميل ألغر م واحد فاو ابحداثي او المحور القائد سيكوو و المحور‬
‫)‪ ،(x‬اما إذا كاو الميل أكبر م واحد فاو المحور القائد و المحور )‪ ،(y‬بحظ‬
‫الشكل ‪2.10‬ج‬

‫‪75‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :2.10‬تحديد محور الرسل وند اقتعف ميل الاطج‬

‫مالحظة‪ :‬إذا كاو الميل يساوي واحد فاو اي محور م المحاور م الممك اقتياره‬
‫ليكوو و القائدج‬
‫فه ا يعني او الاط ومودي ويكوو المحور ‪ y‬و القائد‬ ‫اما اذا كاو‬
‫والمحور ‪ x‬ويمته ثابته ب تتغير ي ذا القيمة اببتدائية له ج‬
‫فاو الاط سيكوو افقي وبالتالي فاو المحور القائد و ‪x‬‬ ‫اذا كاو‬
‫والمحور ‪ y‬ويمته ثابته ب تتغير‪ ،‬بحظ كيفية تمليل الميل في الشكل ‪2.11‬ج‬

‫شكل ‪ :2.11‬تأثير الميل ولى رسل الاطوطج‬

‫‪76‬‬
‫اساسيات الرسم بالحاسوب‬

‫بعد او تل ايجاد الميل با ابو دور القيمة اللابتة ‪ c‬لكي نجد ويمتها و ه ببساطة‬
‫يتل ايجاد ا م تعويض ويل الميل واحداثيا نقاط البداية او النهاية في معادلة الاط‬
‫المستقيل‪ ،‬لتبقى فقط ويمة ‪ c‬غير معروفة ويتل ايجاد ا بحل المعادلة‪ ،‬ويمة ‪ c‬تساوي‬
‫‪c = y1 – m . x1‬‬

‫شكل ‪ :2.12‬رسل قط وفع معادلة الاط المستقيلج‬

‫ابو معادلة الاط المستقيل تحتوي فقط ولى متغيري ما )‪ (x, y‬فاذا ووضنا و‬
‫ويمة )‪ (x or y‬نستطيع ايجاد القيمة ابقرى التي تقابلهاج‬
‫لنحاول او نستوضح ه الطريقة م قعل تطبيقها ولى ملالج نفرض او المطلوب‬
‫رسل قط مستقيل بي النقطتي )‪ P1(5, 10) , P2(11, 14‬ج‬
‫الحل‪:‬‬
‫‪ ‬اوب ايجاد الميل‬

‫واضح او الميل ألغر م واحد ل لك المحور القائد او الدليل و ‪x‬‬

‫‪77‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬ثانيا ايجاد ويمة اللابت ‪c‬‬

‫‪c = y1 – m.x1 = 10 – 0.666 * 5 = 10 – 3.33 = 6.67 = 7‬‬

‫تقرب الى أورب ودد لحيح وند العمل اليدوي ‪ ،‬او تركها كما ي في حالة كتابة‬
‫برنامج‬

‫‪ ‬ابو البحت معادلة الاط المستقيل كما يلي‬

‫‪Y = 0.666 * x + 7‬‬

‫‪ ‬ثاللا يتل زيادب ويمة ‪ x‬بمقدار واحد في كل مرب‪ ،‬وايجاد ويمة ‪ y‬التي تقابلها‬
‫م معادلة الاط المستقيل‪ ،‬سينتج لنا الجدول ‪2.1‬ج‬

‫جدول ‪ :2.1‬حساب النقاط الوسطية بي نقطتي لرسل قط مستقيلج‬


‫المعحظا‬ ‫حساب ويمة النقطة العحقة‬ ‫‪y‬‬ ‫‪x‬‬
‫وند استادال ‪ C++‬فاو ايعاز ودد لحيح‬ ‫‪10‬‬ ‫‪5‬‬
‫ألي رول كسري يعني ح ف الجز‬ ‫‪Y = 0.666 * 6 + 7= 10.996‬‬ ‫‪10‬‬ ‫‪6‬‬
‫الكسري‪،‬‬ ‫‪Y = 0.666 * 7 + 7= 11.662 11‬‬ ‫‪7‬‬
‫نا لمحاكاب الشفرب‬ ‫و ا ما ومنا به‬ ‫‪Y = 0.666 * 8 + 7= 12.328 12‬‬ ‫‪8‬‬
‫البرمجية‬ ‫‪Y = 0.666 * 9 + 7= 12.994 12‬‬ ‫‪9‬‬
‫‪Y = 0.666 * 10 + 7= 13.66 13 10‬‬
‫‪Y = 0.666 * 11 + 7= 14. 326‬‬ ‫‪14 11‬‬

‫‪78‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :2.13‬رسل الاط للملال وفقا لحسابا الجدول ‪2.1‬‬

‫بحظ او الاط الناتج ليس مستقيما بسب التقري ج‬

‫‪ 2.5.2‬انواع الخطوط‬
‫لغرض او يكوو فهل رسل الاطوط سهع فسنقسل الاطوط الى ثعث انواع‬
‫‪1‬ج الاطوط ابفقية‬
‫‪2‬ج الاطوط العمودية‬
‫‪3‬ج الاطوط المائلة‬
‫ل م ابسط انواع الاطوط ورسمهل ب يحتاج الى مهارب‬ ‫النووي ابولي‬
‫وقوارزميا معقدب‪ ،‬بينما تكم المشكلة الرئيسية في رسل الاطوط المائلة والتي‬
‫غالبا يركز ا الفصل وليهاج‬

‫‪79‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ .1‬الخطوط االفقية‬
‫الاط ابفقي يعني او ويمة ابحداثي ‪ y‬ثابت بينما ابحداثي ‪ x‬و ال ي يتغير فقطج‬
‫ل لك فاو رسل الاط ابفقي ب يحتاج الى أكلر م زيادب ويمة ابحداثي ‪ x‬بمقدار‬
‫واحد في كل مرب بينما ابحداثي ابقر سوف ب تتغير ويمتهج‬

‫مالحظة‪ :‬م المهل معحظة إذا كانت ويمة ‪ x0‬اكبر م ويمة ‪ x1‬فسيكوو رسل الاط‬
‫بتقليل ويمة ‪ x‬بمقدار واحد وليس زيادتها‪ ،‬ويج معالجة ه الحالة وند كتابة الدالة‬
‫البرمجية م الممك اوتبار النقطة ذا القيمة ابول ي نقطة البداية للسهولة ج‬

‫)‪P0(x0, y), P1(x1, y‬‬ ‫الدالة البرمجية لرسل قط افقي بي النقطتي‬


‫)‪void H_Line (int x0, int y, int x1, int y‬‬
‫{‬ ‫;‪int s, e, i, y‬‬
‫; ‪s = x0‬‬ ‫; ‪e = x1‬‬
‫)‪if (xo > x1‬‬
‫} ; ‪{ s = x1 ; e = x0‬‬
‫)‪for ( i= s; i<= e ; i++‬‬
‫; )‪putpixel (i, y, color‬‬
‫}‬
‫‪ .2‬الخط العمودي‬

‫نفس الحديث و الاط ابفقي ينطبع ولى الاط العمودي ما قع او التغيير سيكوو‬
‫في ويمة ‪ y‬بمقدار واحد زيادب او نقصاو ‪ ،‬بينما تبقى ويمة ‪ x‬ثابتةج‬

‫الدالة البرمجية لرسل قط ومودي ي‬

‫‪80‬‬
‫اساسيات الرسم بالحاسوب‬

‫)‪void V_Line (int x, int y0, int x, int y1‬‬


‫{‬ ‫;‪int s, e, i, y‬‬
‫; ‪s = y0‬‬ ‫; ‪e = y1‬‬
‫)‪if (yo > y1‬‬
‫} ; ‪{ s = y1 ; e = y0‬‬
‫)‪for ( i= s; i<= e ; i++‬‬
‫; )‪putpixel (x, i, color‬‬
‫}‬

‫شكل ‪ :2.14‬تمليل الاطوط ابفقية‪ ،‬العمودية‪ ،‬والمائلة بزاوية ‪ 45‬دربةج‬

‫مالحظة‪ :‬الاط ابفقي والاط العمودي يظهر اضا ب أفضل م الاط المائل بزاوية‬
‫‪ 45‬دربةج‬

‫‪81‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ .3‬الخطوط المائلة‬
‫تاتلف الاطوط المائلة و الاطوط ابفقية والعمودية وند الرسل وذلك‬
‫لحدوث الكلير م المشاكل التي ربما تؤدي الى رسل قطوط ب تنطبع‬
‫وليها موالفا الاطوط الملاليةج‬
‫ووند الحديث و الاطوط المائلة فهناك نووي م الاطوط المائلة‬
‫‪m=1‬‬ ‫‪ ‬الاطوط المائلة التي يكوو ميلها يساوي واحد‬
‫‪ ‬الاطوط المائلة التي يكوو ميل الاط فيها أكبر او ألغر م واحد ‪m ≠ 1‬‬

‫‪ ‬الاطوط المائلة التي يكوو فيها ميل الاط يساوي واحد‬


‫ه الاطوط ربما تكوو مشابهة الى دربة كبيرب لرسل الاطوط ابفقية او العمودية‬
‫حيث او حساب النقاط الداقلية المحصورب بي نقطة البداية والنهاية ب يحتاج بهد‬
‫كبير او حسابا معقدب و و ب يولد كسور تحتاج الى تقري ج فعندما يكوو الميل‬
‫يساوي واحد ألي قط فه ا يعني او الزاوية التي يولد ا الاط تساوي ‪ 45‬دربة‪،‬‬
‫و ا يعني او اي تغيير بقيمة ‪ x‬بمقدار واحد زيادب او نقصاو يقابله تغير‬
‫باإلحداثي ‪ y‬بنفس القيمة الشكل ‪2.14‬ج‬

‫كود برنامج رسل الاط المائل ال ي ميله يساوي واحدج‬

‫)‪void Line45 (int x0, int y0, int x1, int y1‬‬
‫{‬ ‫;‪int s, e, i, j, y, y2‬‬
‫; ‪s = x0‬‬ ‫;‪e = x1 ; y = y0 ; y2=y1‬‬
‫)‪if (xo > x1‬‬
‫} ; ‪{ s = x1 ; e = x0 ; y = y1 ; y2=y0‬‬
‫)‪if ( y<y2‬‬
‫;‪j=1‬‬

‫‪82‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪else‬‬ ‫;‪j=-1‬‬
‫)‪for ( i= s; i<= e ; i++‬‬
‫; )‪putpixel (i, y+1*j, color‬‬
‫}‬

‫‪ ‬الاطوط المائلة التي ميلها ب يساوي واحد‬

‫في ه الطريقة فاننا يج او نحدد ابحداثي القائد او الدليل كما سبع واشرنا في‬
‫ا الفصل‪ ،‬بعد ا لكل زيادب في ويمة احد ابحداثيا بمقدار واحد يتل حساب ويمة‬
‫ابحداثي المقابل باستادال معادلة الاط المستقيلج‬
‫الاوارزمية تنجز ضرب ابروال الكسرية ملل الميل في كل قطوب وند كل زيادب‬
‫لقيمة ‪ ، x‬ل لك ه الطريقة تتطل ودد كبير م ومليا ضرب الكسور والتي‬
‫تكوو مكلفةج‬
‫شفرب برنامج رسل الاط باستادال معادلة الاط المستقيل الدالة م الممك او‬
‫تستادل لكل انواع الاطوط‬
‫)‪void Line (int x0, int y0, int x1, int y1‬‬
‫{‬ ‫;‪int i, s, e‬‬ ‫; ‪float m, dx, dy, c‬‬
‫; ‪dy = y1 – y0‬‬ ‫; ‪dx = x1 – xo‬‬
‫; )‪if (dy = 0) H_Line (x0, y0, x1, y1‬‬
‫‪else‬‬
‫)‪if ( dx = 0‬‬ ‫; )‪V_Line (x0, y0, x1, y1‬‬
‫{ ‪else‬‬
‫; ‪m = dy / dx‬‬
‫)‪if ( m = 1‬‬ ‫; )‪line45 (x0, y0, x1, y1‬‬
‫{ ‪else‬‬
‫; ‪c = y0 – x0 * m‬‬

‫‪83‬‬
‫اساسيات الرسم بالحاسوب‬

‫{ )‪if ( m < 1‬‬


‫; ‪s = x0‬‬ ‫; ‪e = x1‬‬
‫)‪if (xo > x1‬‬ ‫} ; ‪{ s = x1 ; e = x0‬‬
‫{ )‪for ( i= s; i<= e ; i++‬‬
‫;‪y=m*i+c‬‬
‫} ; )‪putpixel (i, y, 5‬‬
‫‪else‬‬
‫{‬
‫; ‪s = y0‬‬ ‫; ‪e = y1‬‬
‫)‪if (yo > y1‬‬ ‫} ; ‪{ s = y1 ; e = y0‬‬
‫{ )‪for ( i= s; i<= e ; i++‬‬
‫;‪y=m*i+c‬‬
‫; )‪putpixel (x, i, 5‬‬
‫}‬
‫} }‬
‫}‬

‫خوارزمية )‪Digital Differential Analyzer (DDA‬‬ ‫‪2.6‬‬

‫ي قوارزمية توليد الاط م معادبته التفاضليةج ي تعمل ولى مبدأ الزيادب‬


‫المتزامنة لكل م )‪ (x, y‬بقيل لغيرب تتناس مع المشتقة ابولى لكل م ‪ x‬وك لك‬
‫‪y‬ج‬
‫او معادلة مشتقة الاط المستقيل تعطى بالمعادلة التالية‬
‫‪84‬‬
‫اساسيات الرسم بالحاسوب‬

‫لنناوشها بطريقة اقرى‪ ،‬اذا كانت لديك نقطة ولى الاط المستقيل فبإمكانك او تعرف‬
‫الى المحور ‪ x‬واضافة‬ ‫النقطة القادمة ولى ذا الاط المستقيل وذلك بإضافة‬
‫‪ y‬الى المحور‪ ، y‬ا يعني اذا كانت لديك النقطة )‪ ،p(x, y‬فاو بإمكانك او‬
‫تحصل ولى النقطة القادمة ولى انها )‪ ،Q(x+ x, y + y‬النقطة التي بعد ا ‪R‬‬
‫ستكوو )‪ R(x + 2* x, y + 2* y‬و ك اج ل ا‪ ،‬في الحقيقة ه طريقة زيادب‬
‫)‪ (incremental method‬وذلك م معرفة نقطة البداية فسيكوو م الممك‬
‫معرفة باوي النقاط‪ ،‬واحدب بعد ابقرى كل واحدب تبعد و سابقتها بمقدار ثابت‪،‬‬
‫لحي او نصل نقطة النهايةج‬
‫( تعطينا قطوط مستقيمة بأنواوها الماتلفةج‬ ‫القيل الماتلفة لكل م‬
‫بسب ودل الدوة نتيجة ومليا التقري للكسور‪ ،‬فم النادر او نحصل ولى قط‬
‫مستقيل سوي‪ ،‬لك بالنهاية سنحصل ولى قطوط ب تعتبر ملاليةج‬

‫‪ ‬قوارزمية ‪ DDA‬تتبع الاطوا التالية‬

‫‪1‬ج تحديد نقاط البداية والنهاية للاط يج او تكوو اوداد لحيحة ج‬


‫‪2‬ج ايجاد ويمة الميل للاطج‬
‫‪3‬ج فحص الميل‬
‫‪A‬ج إذا كاو الميل ب يساوي واحد فنتبع واحدب م الاطوا التالية )‪(B, C‬ج‬
‫‪B‬ج إذا كاو الميل ألغر م واحد اي او ‪ dx > dy‬فتكوو‬
‫)‪(x = x+1 … y = y +m‬‬
‫‪C‬ج اما إذا كانت ويمة الميل أكبر م واحد اي او ‪ dx < dy‬فتكوو‬
‫)‪( x= x+ 1/m … y = y+1‬‬

‫‪85‬‬
‫اساسيات الرسم بالحاسوب‬

‫ه الدالة والجت كل‬ ‫الدالة البرمجية له ه الاوارزمية ي التالي‪ ،‬مع معحظة او‬
‫النقاط اوعهج‬
‫)‪void DDA_Line (int x0, int y0, int x1, int y1‬‬
‫{‬ ‫;‪int j, dx, dy, steps‬‬ ‫; ‪float x, y, xinc, yinc‬‬
‫; ‪x = xo‬‬ ‫; ‪y = yo‬‬
‫; )‪dx = (x1 - xo‬‬ ‫; )‪dy = (y1 - yo‬‬
‫; )‪steps = abs (dx‬‬
‫) )‪if (steps < abs (dy‬‬
‫; )‪steps = abs (dy‬‬
‫; ‪xinc = dx/steps‬‬ ‫; ‪yinc = dy/steps‬‬
‫)‪for ( j= 0; j<= steps ; j++‬‬ ‫{‬
‫; )‪putpixel (int (x), int (y), color‬‬
‫; ‪x = x + xinc‬‬
‫; ‪y = y + yinc‬‬
‫}‬
‫}‬

‫مالحظة ‪ :‬نحس الطول ابكبر ونعتمد وليه في تحديد ودد النقاط الداقلية التي يج‬
‫اضا تها وذلك لضماو أكبر ودد م النقاط التي يتل اضا تها‪ ،‬فكلما زاد ودد نقاط‬
‫الاط سينتج قط أفضلج فملع لو ارد رسل قط بي النقطتي ‪(P1(5, 10),‬‬
‫))‪ P2(11, 13‬ستعحظ نا فرق بي الاطي وندما نعتمد طول )‪ (dx=6‬او وندما‬
‫نعتمد طول )‪ ،(dy=3‬بحظ ودد النقاط الوسطية في الحالتي ‪ ،‬او زيادب ودد النقاط‬
‫الوسطية يساود ولى رسل قط أورب الى الملالية بحظ الشكل )‪(2.15‬ج‬

‫‪86‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :2.15‬تمليل الاط وند اقتعف المحور القائد لنفس النقطةج‬

‫او المتغيرا )‪ (xinc, yinc‬تعطي كمية ابزاحة التي يج او تضاف في كل‬


‫دورب لكل نقطة ج بحظ نا او تقسيمهل ولى الطول سيجعل أحد ل يساوي وحدب‬
‫واحدبج فاذا كاو )‪ (y2-y1‬أكبر فسيكوو )‪ (yinc‬و ال ي يساوي وحدب واحدب‪،‬‬
‫م بان اقر اذا كاو )‪ (x2-x1‬اكبر فاو )‪ (xinc‬ستكوو مساوية وحدب واحدبج ماذا‬
‫يعني ا‪ ،‬ا يعني اننا بأحد ابتجا ي )‪ (x or y‬سوف نتحرك بمقدار ونصر‬
‫لورب واحد في كل مرب‪ ،‬بينما بابتجاه ابقر فأننا يج او نحس فيما اذا يج او‬
‫الى القيمة العحقة او نبقى ولى نفس القيمة القديمة اي نتحرك بمقدار ونصر‬ ‫ن‬
‫لورب واحد او ب ج‬
‫وادب قطوط قوارزمية ‪ DDA‬تظهر بالشكل )‪(2.16‬‬

‫شكل ‪ :2.16‬توضيح لتأثير حالة السللج‬

‫م الواضح او الاط المتوسط له ه النقاط و الاط الحقيقيج‬

‫‪87‬‬
‫اساسيات الرسم بالحاسوب‬

‫ا التأثير احيانا يدوى تأثير حالة‬ ‫بحظ او الاط يبدو مشابه لمتوالية م السعللج‬
‫السلل )‪(Stair case effect‬ج‬
‫في ه الاوارزمية نحتاج الى حساب الميل مرب واحدب فقطج‬
‫النقطة العائمة‬ ‫قوارزمية ‪ DDA‬تتصف بانها بطيئة ألنها تتطل ومليا‬
‫الكسور ج‬

‫خوارزمية برزنهام ‪Bresenham’s algorithm‬‬ ‫‪2.7‬‬

‫ه الاوارزمية لممت ولى اساس واحدب م ا ل الصفا الجيدب في قوارزمية‬


‫‪ ،DDA‬و ي اننا في كل مرحلة م مراحل قوارزمية ‪ DDA‬سيتل تغيير واحد‬
‫م ابحداثيا )‪ (x, y‬بمقدار واحد كما سبع واو وضحنا ذلك في محله ‪ ،‬بينما‬
‫ابحداثي ابقر اما يتغير بمقدار واحد او يبقى ثابتج ا بسب او القيل تتغير‬
‫بمقدار لغير ونتيجة ومليا التدوير فاو القيل ربما ب تكوو كافية بو تأق النقطة‬
‫الى المستوى القادلج‬
‫او افضل طريقة لشرح قوارزمية برزنهال و م قعل العمل ولى ملالج نفرض‬
‫الملال التالي مطلوب فيه رسل قط م النقطة )‪ (0, 0‬الى النقطة )‪ (5, 3‬كما في‬
‫الشكل )‪(2.17‬ج‬

‫‪88‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :2.17‬مقطع مكبر م الشاشة توضح طريقة رسل قط بي نقطتي ج‬

‫قوارزمية برزنهال تبدأ بالنقطة )‪ (0, 0‬وتضي ونصر الصورب في ه النقطةج‬


‫وحيث او المحور ‪ x‬و ابكبر ل لك سيكوو و المحور ال ي نتحرك وليه‬
‫ونستارج وفقا لقيل )‪ (x‬ويل المحور‪ ، y‬سيتل زيادب ويل ‪ x‬بمقدار واحد في كل مربج‬
‫وند زيادب ويمة ‪ x‬بمقدار واحد فاو ويمة ‪ y‬سيتل زيادتها بمقدار الميل )‪(m=dy/dx‬ج‬
‫الاوارزمية ستحافظ ولى قطأ مقيد مقداره ) ( في كل مرحلة‪ ،‬وال ي يملل سال‬
‫المسافة م النقطة التي يكوو فيها الاط الحقيقي موبود ولى ونصر الصورب الى‬
‫الحافة العليا لعنصر الصورب كما في الشكل ‪2.17‬ج ه القيمة تضبط في البداية الى‬
‫القيمة )‪ (m – 1‬ويتل زيادتها بمقدار )‪ (m‬في كل مرب‪ ،‬يتل زيادب ابحداثي ) ‪( x‬‬
‫بمقدار واحدج اذا ) ( البح اكبر م لفر‪ ،‬سيكوو معلول باو الاط تحرك‬
‫لألولى بمقدار ونصر لورب واحد‪ ،‬ووليه يج زيادب المحور )‪ (y‬واوادب ضبط‬
‫الاطأ ليملل المسافة م اولى ونصر الصورب الجديدب وال ي نحسبه بطرح واحد‬
‫م ) (ج‬

‫‪89‬‬
‫اساسيات الرسم بالحاسوب‬

‫القارئ م الممك او ياتبر الملال اوعه ويتابع الجدول )‪ (2.2‬ليرى العمليا‬


‫الكاملة للاوارزمية ولى ا الملالج‬
‫جدول ‪ :2.2‬قطوا تنفي الملال السابعج‬

‫‪90‬‬
‫اساسيات الرسم بالحاسوب‬

‫قطوا تنفي قوارزمية برزنهال ي‬ ‫‪‬‬


‫اضا ب نقطة البدايةج‬ ‫‪1‬ج‬
‫فحص ويمة الاطأج‬ ‫‪2‬ج‬
‫إذا كانت ويمة الاطأ موببة أي أكبر م لفر فيكوو ما يلي‬ ‫‪3‬ج‬
‫‪A‬ج زيادب ويمة ‪ y‬بمقدار واحدج‬
‫‪B‬ج إنقا ويمة الاطأ بمقدار واحدج‬
‫زيادب ويمة ‪ x‬بمقدار واحدج‬ ‫‪4‬ج‬
‫زيادب ويمة الاطأ بمقدار الميلج‬ ‫‪5‬ج‬
‫اضا ب النقطة حس ابحداثيا الجديدبج‬ ‫‪6‬ج‬
‫إذا لل نصل الى نقطة النهاية‪ ،‬العودب الى الاطوب ‪2‬ج‬ ‫‪7‬ج‬

‫شفرب برنامج تنفي قوارزمية برزنهالج‬

‫)‪void Bres (int x1, int y1, int x2, int y2, int c‬‬
‫{‬
‫;‪int dx, dy‬‬ ‫;‪double e, m‬‬
‫;)‪dx = (x2 - x1‬‬ ‫;)‪dy = (y2 - y1‬‬
‫‪int x = x1,‬‬ ‫;‪y = y1‬‬
‫))‪if ((dx !=0) && (dy !=0‬‬
‫{‬
‫;‪m = dy/dx‬‬ ‫;‪e = m-1‬‬
‫)‪if (m < 0‬‬ ‫; )‪m = m * (-1‬‬
‫))‪if ( abs(dx) > abs(dy‬‬ ‫{‬
‫)‪for(int i=0; i<= abs (dx); i++‬‬ ‫{‬
‫;)‪putpixel (x, y, c‬‬
‫)‪if (e > 0‬‬

‫‪91‬‬
‫اساسيات الرسم بالحاسوب‬

{
if (y1>y2) y = y-1;
else
y = y+1;
e = e-1;
}
if (x1 > x2)
x = x-1;
else
x = x+1;
e=e+ m;
}
}
else
{
m = dx/dy; e = m-0.5;
if ( m < 0) m = m * (-1) ;
for (int i=0; i<= abs(dy); i++)
{
putpixel (x, y, c);
if (e > 0)
{
if (x1>x2)
x=x-1;
else

92
‫اساسيات الرسم بالحاسوب‬

x = x+1;
e = e-1;
}
if (y1 > y2)
y=y-1;
else
y = y+1;
e=e+m;
}
}
}
else
{
if (dy == 0)
for (int i=0; i<=abs(dx); i++)
if ( x2 > x1)
putpixel (x++, y, c) ;
else
putpixel ( x-- , y, c) ;
else
for (int i=0; i<=abs(dy); i++)
if ( y2 > y1)
putpixel(x, y++, c);
else
putpixel (x, y--, c) ;
}

93
‫اساسيات الرسم بالحاسوب‬

‫}‬
‫}‬

‫لنعيد شرح ه الفكرب بشكل مفصل وأكلر دوة ونرى كيف او برزنهال طور ا‬
‫لتكوو قوارزمية لها ميزا و غير ا م الاوارزميا ابقرى‪ ،‬و أكد ولى‬
‫اوتماد فكرب حساب الاطأ لك بطريقة أفضل حيث تالص م الكسور وومليا‬
‫ضرب الععمة العائمة لينتج وعوا تعتمد فقط ولى ومليا الجمع والطرح وكما‬
‫يليج‬

‫شكل ‪ :2.18‬شاشة الحاسوب مكبرب‪ ،‬كل مربع يملل ونصر لوربج‬

‫الشكل )‪ (2.18‬يملل الشاشة و ي مقسمة الى مجمووة م ونالر الصورب‬


‫)مكبرب( وواضح فيها الصفوف مرومة بالحرف )‪ (J‬وابومدب مرومة بالحرف )‪(I‬‬
‫وكل منها تملل ويمة وددية رول لحيح لكي ب يحدث التباس ننوه الى او المحور‬
‫‪ x‬و مملل باألومدب )‪ (I‬والمحور ‪ y‬و مملل بالصفوف )‪ (J‬ج ولى ه الشاشة تل‬
‫رسل قط و و يملل الاط المطلوب رسمه‪ ،‬وكما تعحظوو م الشكل ‪ 2.18‬فاو‬
‫ارتفاع مسار الاط الحقيقي و أورب لف في النقطة ابولى معلمة بالحرف )‪(H‬ج‬
‫اي انها تملل ابرتفاع م الصف الى مسار الاط‪.‬‬
‫‪94‬‬
‫اساسيات الرسم بالحاسوب‬

‫بحظ نا او المسافة بي لف واقر ي وحدب واحدب‪ ،‬والمسافة بي ومود‬


‫والعمود العحع ي وحدب واحدب‪.‬‬
‫لنفرض ابتدا ولغرض البر او او ابرتفاع و اكبر م نصف ) ب يمك او يكوو‬
‫ابرتفاع )‪ (H‬اكلر م واحد ألنه وندما يتجاوز الواحد فأننا سنتجاوز الصف‬
‫العحع(ج‬

‫‪H > 0.5 ------------------------------ 1‬‬


‫لكي نرسل الاط فأننا نقول بزيادب المحور ‪ x‬بمقدار واحد في كل مرب‪ ،‬اما ويمة ‪y‬‬
‫فأنها ستزداد بمقدار الميل في كل مرب اي او ابرتفاع يزداد بمقدار الميل في كل‬
‫مرب )احيانا وندما يضاف الميل فاو ويمة ابرتفاع ستكوو أكبر م واحد ولية‬
‫سنطرح واحد م وملية اضافة الميل وذلك بو ويمة ابرتفاع ستكوو أكبر م‬
‫واحد اي تل تجاوز الصف العحع والمفروض او يحس ابرتفاع م أورب‬
‫لف ج ولية فاو ذلك سيؤدي الى احتمالي وندما نضيف الميل اما نتجاوز الصف‬
‫او ب نتجاوزه و ما‪:‬‬
‫‪H=H+M‬‬ ‫‪-------------------------------- 2‬‬
‫‪H = H + M – 1 -------------------------------- 3‬‬
‫بحظ اوب امكانية اوادب كتابة الععوة ‪ 1‬كما يلي وذلك بنقل الطرف ابيم م‬
‫وعمة المقارنة الى الطرف ابيسر‬
‫‪H – 0.5 > 0‬‬
‫‪2H – 1 > 0 ------------ 4‬‬ ‫بضرب الععوة اوعه في ‪ 2‬نحصل ولى‬
‫او وملية الضرب بالرول ‪ 2‬ستؤدي الى ازالة الكسر ‪ 0.5‬كما و واضح في‬
‫الععوة ‪ ،4‬ولك )‪ (H‬له بز كسري وال ي يتولد م مقال الميل ال ي يضاف في‬
‫كل قطوب ابرتفاع ‪ H‬يضاف له الميل في كل قطوب حس الععوا ‪، 2, 3‬‬
‫الميل يساوي ‪ ،dy / dx‬ول لك فاو ‪ dx‬سيولد غالبا رول كسري للميل ج‬
‫إلزالة الكسر م ابرتفاع ‪ H‬سنضرب الععوة ‪ 4‬بمقال الميل )‪ (Dx‬فينتج‬
‫‪2 .Dx . H – Dx > 0‬‬

‫‪95‬‬
‫اساسيات الرسم بالحاسوب‬

‫لسهولة متابعة البر او‪ ،‬نفرض او‬


‫‪G = 2. Dx . H – Dx --------------------------------- 5‬‬
‫اي او ه القيمة )‪ ( 2 Dx . H - Dx‬وضعت بمتغير و و‪G‬‬
‫‪G>0‬‬ ‫و ا يعني او‬
‫ابو كيف سيتغير ‪ G‬م ومود الى العمود العحع؟‬
‫سنعمل ولى الععوة ‪ 5‬إليجاد ‪ ،H‬اي نحول ‪ H‬الى الطرف ابيسر وباوي المتغيرا‬
‫الى الطرف ابيم م المساواب‬

‫‪H = (G + Dx ) / 2 . Dx --------------------------------- 6‬‬

‫ابو نفحص ابحتمالي ال ي أشرنا لهل بالبداية ضم الععوا ‪3 ، 2‬‬


‫ابحتمال ابول‪ :‬إذا كاو‬
‫‪Hnew = Hold + M‬‬
‫نعوض و ويمة ‪ H‬بما يساويها م الععوة )‪ (6‬لينتج لنا‬
‫‪(Gnew + Dx) / 2. Dx = (Gold + Dx) / 2. Dx + M ---------------- 7‬‬
‫‪M = Dy / Dx‬‬ ‫يعوض الميل بما يساويه‬
‫ولية ستكوو الععوة )‪ (7‬كما يلي‬
‫‪(Gnew + Dx) / 2. Dx = (Gold + Dx) / 2 . Dx + Dy / Dx --------- 8‬‬

‫بعد ضرب بميع ونالر الععوة )‪ (8‬بالقيمة ‪ ، 2.Dx‬وتبسيط الناتج نحصل ولى‪:‬‬
‫‪Gnew= Gold + 2. Dy‬‬ ‫‪------------------- 9‬‬
‫اما ابحتمال اللانيجج في حالة‬
‫‪Hnew= Hold + M – 1‬‬
‫نعوض و ويمة ‪ H‬بما يساويها م الععوة )‪ (6‬نحصل ولى‪:‬‬
‫‪(Gnew + Dx) / 2. Dx = (Gold + Dx) / 2. Dx + M-1--------- 10‬‬
‫‪96‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪M = Dy / Dx‬‬ ‫يعوض الميل بما يساويه‬

‫ولية ستكوو الععوة )‪ (10‬كما يلي‬

‫‪(Gnew + Dx) / 2. Dx = ( Gold + Dx) / 2 . Dx + Dy / Dx -1 --- 11‬‬


‫بعد ضرب بميع ونالر الععوة )‪ (11‬بالقيمة ‪ ، 2.Dx‬وتبسيط الناتج نحصل‬
‫ولى‪:‬‬
‫‪Gnew= Gold + 2 . Dy – 2 . Dx ………… 12‬‬

‫او حساب ‪ G‬م الععوتي )‪ (9, 12‬يتطل فقط اضافة وطرح وممك ومل ذلك‬
‫بشكل كامل مع اروال لحيحةج‬
‫الفكرب ي استادال ‪ G > 0‬لتحديد متى يقطع الصف بالاط بدب م ‪H > 0‬‬
‫لنقاط النهاية ذا اببعاد الصحيحة فاو القيمة اببتدائية لعرتفاع ‪ H‬ي ‪ M‬ل ا فاو‬
‫ويمة ‪ G‬اببتدائية بابستعانة بالععوة ‪ 5‬وبعد تعويض ويمة الميل ي‬
‫‪G = 2. Dx (Dy/Dx) – Dx = 2. Dy – Dx‬‬
‫لكل ومود نفحص ‪ G‬فيما اذا كانت موببة نتحرك الى الصف العحع ونضيف‬
‫)‪ (2.Dy – 2. Dx‬الى ‪G‬ج‬

‫قعف ذلك نحافظ ولى نفس الصف ونظيف ‪ 2.Dy‬الى ‪G‬ج‬

‫‪97‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪98‬‬
‫اساسيات الرسم بالحاسوب‬

‫الفص الثالث‬
‫رسل الدائرب ‪CIRCLE DRAWING‬‬

‫المقدمة‬ ‫‪3.1‬‬
‫نظرا الى او الدائرب م المكونا التي تستادل بكلرب في الصور والماططا ‪ ،‬ل ا‬
‫فاو دوال رسل دائرب كاملة او ووس دائرب غالبا تضم في حقائ الرسولج بكعل‬
‫اكلر ومومية‪ ،‬في برامج الرسول توبد دالة مفردب م الممك او تستادل لعرض‬
‫الدوائر وابشكال البيضويةج رسل الدائرب يعتبر وليع اكلر تعقيدا م رسل الاطج‬
‫الدائرب ي مجمووة م النقاط التي تحيط بشكل كامل بنقطة محددب تعتبر المركز‬
‫)‪ (xc, yc‬وبميع ه النقاط تبعد مسافة متساوية مقدار ا )‪ (r‬و المركز نصف‬
‫القطر ج‬
‫مالحظة‪ :‬دائما تحدد الدائرب بواسطة نقطة المركز )‪ (xc, yc‬ونصف القطر كما في‬
‫الشكل ‪ ،3.1‬وب يمك رسل دائرب بغياب احد ي المعاملي م الممك اذا لل‬
‫تتوفر نقطة المركز او نعتبر المركز و نقطة ابلل ج‬

‫شكل ‪ :3.1‬دائرب موضح وليها المركز ونصف القطرج‬

‫‪99‬‬
‫اساسيات الرسم بالحاسوب‬

‫ناك ودب طرق لرسل الدائرب و ي تاتلف م حيث كفا تها وسروة تنفي اج‬

‫‪Cartesian‬‬ ‫رسم الدائرة بطريقة االحداثيات الديكارتي‬ ‫‪3.2‬‬


‫‪Coordinates Method‬‬
‫احيانا تسمى طريقة الج ر التربيعي و ي تعتمد ولى معادلة الدائربج‬
‫معادلة الدائرب المركز في نقطة ابلل ي‬
‫‪x2 + y2 = r2‬‬

‫حيث او )‪ (r‬يملل نصف وطر الدائربج م الممك كتابة قوارزمية رسل دائرب‬
‫بسيطة وذلك اذا ما ومنا بحل معادلة الدائرب إليجاد ويمة )‪ (y‬وندما نستادل مدى‬
‫تغير لإلحداثي )‪ (x‬بمقدار وحدب واحدب في كل مربج‬
‫بكعل اقر‪ ،‬م الممك استادال معادلة الدائرب ه لحساب مووع النقاط ولى محيط‬
‫الدائرب وذلك وند التعويض و ويل )‪ (x‬بزيادب وحدب واحدب في كل مرب ضم‬
‫المدى ))‪ (0, r‬الى )‪ ((0, - r‬وحساب ويل ‪ y‬التي تقابلها في كل مووع‪ ،‬ولما او‬
‫ويمة نصف القطر )‪ (r‬ثابتةج‬

‫=‪y‬‬

‫لو فرضنا او المطلوب رسل دائرب نصف وطر ا )‪ (20‬مركز الدائرب في نقطة‬
‫ابلل ‪ ،‬باستادال معادلة الدائرب وكما يلي‬

‫‪100‬‬
‫اساسيات الرسم بالحاسوب‬

‫حساب ويل ‪ y‬ضم المديا المحددب لقيل ‪x‬‬


‫)‪x= (0 … r‬‬ ‫)‪x= (0 … -r‬‬
‫=‪y‬‬ ‫=‪y‬‬
‫=‪y‬‬ ‫=‪y‬‬
‫=‪y‬‬ ‫=‪y‬‬
‫‪……………..‬‬ ‫‪……………..‬‬
‫=‪y‬‬ ‫=‪y‬‬
‫=‪y‬‬ ‫=‪y‬‬

‫شكل ‪ :3.2‬دائرب تل رسمها باستادال معادلة الدائرب مركز ا في نقطة ابللج‬

‫ه الطريقة ليست مناسبة وذلك بو الدائرب التي تل رسمها تحتوي ولى فراغا‬
‫كبيرب‪ ،‬الحسابا ليست كفو ب بدا وملية التربيع‪ ،‬والج ر و ا يحتاج الى‬
‫التقري ‪ ،‬فضع و انها تسب زيادب في الووت المطلوب لرسل الدائرب بسب‬
‫زيادب الووت المطلوب لحساب ومليا الضرب والج رج ل لك نحتاج الى قوارزمية‬
‫دائرب اكلر كفا ب واكلر دوة إليجاد النتائجج‬

‫‪101‬‬
‫اساسيات الرسم بالحاسوب‬

‫مالحظة‪ :‬في الملال السابع فاو مركز الدائرب و في نقطة ابلل‪ ،‬اما اذا تغير‬
‫مركز الدائرب بحظ الشكل ‪ 3.3‬فأننا بحابة الى اوادب كتابة المعادلة بحيث‬
‫تتضم المركزج ستكوو المعادلة كما يلي‬

‫=‪y‬‬
‫تعتبر المعادلة السابقة وامة لرسل الدائرب اينما كاو مركز الدائرب سوا كاو في‬
‫نقطة ابلل او في مكاو اقرج‬

‫شكل ‪ :3.3‬دائرب رسمت باستادال معادلة الدائرب ومركز ا ليس في نقطة ابللج‬

‫طريقة االقطاب ‪Polar Method‬‬ ‫‪3.3‬‬


‫ايضا تسمى طريقة الدوال المللليةج‬
‫معادلة الدائرب يعاد كتابتها باستادال الدوال الملللية‪ ،‬و ي طريقة اقرى لحساب‬
‫النقاط ولى طول حدود الدائرب باستادال ابحداثيا القطبية وتستادل لح ف‬
‫الفراغا غير المتساويةج معادلة الدائرب بالشكل القطبي ينتج ونها زوج م‬
‫المعادب ج‬

‫‪102‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :3.4‬حساب النقاط ولى محيط الدائرب باستادال الزواياج‬

‫في الشكل ‪ 3.4‬نعحظ او ناك امكانية لحساب احداثيا اي نقطة ولى محيط‬
‫الدائرب التي نصف وطر ا )‪ (r‬وذلك باستادال الدوال الملللية الجي والجي تمال‬
‫وكما يلي ولى اوتبار او المركز في نقطة ابلل ‪:‬‬
‫‪cos (ө) = x / r‬‬
‫)‪x = r . cos (ө‬‬
‫‪sin (ө) = y / r‬‬
‫)‪y = r . sin (ө‬‬

‫اما اذا كاو المركز في النقطة )‪ (xc, yc‬فتصبح الععوا كما يلي‪:‬‬
‫‪x = xc + r . cos‬‬
‫‪y = yc + r . sin‬‬

‫وندما يتل رسل دائرب باستادال ه الععوا الملللية سنحاول ايجاد النقاط ولى‬
‫محيط الدائرب ابتدا م الزاوية لفر لغاية الزاوية )‪ ،(360‬وكلما كاو ودد النقاط‬
‫اكلر بمعنى كلما كانت الزاوية لغيرب كلما كانت الدائرب افضلج‬

‫‪103‬‬
‫اساسيات الرسم بالحاسوب‬

‫مالحظة‪ :‬م الممك او تكوو زيادب الزاوية بمقدار دربة واحدب في كل مرب‬
‫وبالتالي سيكوو ودد النقاط )‪ ،(360‬وم الممك او تكوو الزاوية اكبر او الغر‬
‫في كل قطوب‪ ،‬يفضل او تكوو الغر م دربة واحدبج‬
‫الدالة البرمجية لرسل دائرب باستادال ابوطاب ي‬

‫)‪void PolarCircle (int xc, int yc, int r‬‬


‫{‬
‫; ‪int x, y‬‬
‫;‪double dth= 0.1 , th = 0‬‬
‫{ )‪while (th<= 2*M_PI‬‬
‫; )‪x = r * cos (th‬‬
‫; )‪y = r * sin (th‬‬
‫;)‪putpixel (int(x+xc), int(y+yc), color‬‬
‫; ‪th = th + dth‬‬
‫}‬

‫شكل ‪ :3.5‬دائرب رسمت باستادال طريقة ابوطابج‬

‫‪104‬‬
‫اساسيات الرسم بالحاسوب‬

‫التناظر ‪Symmetry‬‬ ‫‪3.4‬‬


‫سنتطرق بحقا الى موضوع ابنعكاس‪ ،‬ولك ما يهمنا نا او اي دائرب م الممك‬
‫او يكوو فيها انعكاس ألبزا كبيرب م الدائرب‪ ،‬فملع م الممك او نقسل الدائرب‬
‫الى وسمي متشابهي باي ترتي كاو‪ ،‬وم الممك او نقسمها الى اربع اوسال‬
‫متشابهة‪ ،‬وايضا م الممك او نولد ثم دائرب و ا اللم ينعكس باتجا ا ماتلفة‬
‫داقل الدائرب ليولد ثماو اثماو متشابهة كما في الشكل ‪3.6‬ج‬

‫شكل ‪ :3.6‬التناظر في الدائربج‬

‫او اقتيار اي نقطة ولى محيط الدائرب ملع )‪ (x, y‬م الممك او يساود ولى توليد‬
‫سبع نقاط اقرى اضافية اوتمادا ولى مبدا يسمى التناظرج او النقاط التي م الممك‬
‫توليد ا ي‬
‫)‪(y, x), (-x, y), (-y, x), (x, -y), (y, -x), (-x, -y), (-y, -x‬‬

‫ا التناظر يفيد في وملية رسل الدائرب وزيادب سروة رسل الدائرب‪ ،‬فبدب م حساب‬
‫بميع النقاط المطلوبة لرسل الدائرب فسيتل حساب فقط النقاط المطلوبة لرسل ثم‬
‫الدائرب وباوي النقاط تستارج م وملية التناظر كما في الشكل ‪ 3.7‬حيث سيتل‬
‫حساب النقاط في الجز المضلل بينما باوي النقاط تستارج م التناظر‪ ،‬فملع إذا تل‬

‫‪105‬‬
‫اساسيات الرسم بالحاسوب‬

‫حساب النقطة )‪ (x, y‬فسيكوو بمقدورنا استنتاج سبعة نقاط اقرى ولى محيط‬
‫ه النقطة و ي‪:‬‬ ‫الدائرب م‬
‫))‪( (y, x), (y, -x), (x, -y), (-x, -y), (-y, -x), (-y, x), (-x, y‬‬

‫شكل ‪ :3.7‬نقاط التناظر اللماوج‬

‫طريقة الزيادة ‪Incremental Method‬‬ ‫‪3.5‬‬


‫او الفرق في ويمة الزاوية بي زاويتي لنقطتي متعاوبتي سيكوو كما اسلفنا مقدار‬
‫ثابت م الممك او تكوو ويمته ولى سبيل الملال )‪ (d = 0.1‬او نحسبها بدبلة‬
‫نصف القطر لكي يتناس مع كل الدوائر بماتلف حجومها‪ ،‬كاو تكوو ويمة الزاوية‬
‫)‪ ،(d = 1/r‬كما يعحظ في الشكل ‪ ،3.8‬ل لك فاو ويمة الزاوية ) ( الجديدب التي‬
‫ستستادل لحساب النقطة الجديدب التي تلي النقطة السابقة تنتج م بمع ويمة ) ( مع‬
‫‪ ،(d‬وليه فاو الزاوية الكلية‬ ‫مقدار الزيادب اللابت للزاوية بي نقطتي متعاوبتي‬
‫ي ) ‪ ( + d‬وذلك بو الزاوية تزداد بمقدار ثابت في كل قطوب مقداره ) ‪(d‬ج‬
‫مالحظة‪ :‬م المفضل او تكوو ويمة الزاوية التي يتل زيادتها في كل قطوب تساوي‬
‫مقدار ثابت ويمته )‪(1/r‬ج‬
‫‪106‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :3.8‬بز م دائرب مع تحديد الزوايا المتولدب باستادال نصف القطرج‬

‫ا فاو ويل احداثيا النقطة )‪ (x1, y1‬التي في الشكل ‪ 3.8‬م الممك حسابها‬ ‫م‬
‫كما يلي‬
‫‪….1‬جج……… ‪cos (ө) = x1 / r‬‬
‫)‪x1 = r . cos (ө‬‬
‫‪sin (ө) = y1 / r …………..2‬‬
‫)‪y1 = r . sin (ө‬‬

‫مما تقدل فاو النقطة العحقة للنقطة ابولى )‪ (x2, y2‬سيتل حسابها كما يلي‬

‫‪….. 3‬ج…… )‪x2 = r . cos (ө + dө‬‬


‫‪y2 = r . sin (ө + dө) ……..…..4‬‬

‫و‬ ‫نعلل م الععوا الملللية او بي وبي تمال بمع زاويتي‬

‫‪107‬‬
‫اساسيات الرسم بالحاسوب‬

‫)‪sin (x + y) = sin(x) . cos(y) + cos(x) . sin(y‬‬


‫)‪cos (x + y) = cos(x) . cos(y) - sin(x) . sin(y‬‬

‫)‪ (ө + dө‬سنحصل ولى‬ ‫ه القاودب ولى بمع الزاويتي‬ ‫إذا نف‬

‫)‪sin (ө + dө) = sin (ө) . cos (dө) + cos (ө) . sin (dө‬‬
‫)‪cos (ө + dө) = cos (ө) . cos (dө) – sin (ө) . sin (dө‬‬

‫نحاول تبسيط الععوا )‪ ،(3, 4‬وسنبدأ بالععوة ‪3‬‬


‫)‪x2 = r . cos (ө + dө‬‬

‫)‪ cos (ө + dө‬بما يساويها بي تمال بمع زاويتي‬ ‫نعوض و‬

‫))‪x2 = r . (cos (ө) . cos (dө) – sin (ө) . sin (dө‬‬

‫)‪,(1, 2‬‬ ‫))‪ (cos (ө), sin (ө‬بما يساويها م الععوا‬ ‫نعوض و ويل كل م‬
‫نحصل ولى‬
‫))‪x2 = r . ((x1/r) * cos(dө) – (y1/r) * sin(dө‬‬

‫تاتصر )‪ (r‬المشتركة في البسط والمقال في الطرف ابيم م الععوة السابقة‬


‫وتكوو النتيجة‬
‫)‪x2 = x1 . cos (dө) – y1 . sin (dө‬‬
‫بنفس الطريقة نبسط الععوة ‪ 4‬لنحصل ولى‬

‫)‪y2 = y1 . cos (dө) + x1 . sin (dө‬‬


‫‪108‬‬
‫اساسيات الرسم بالحاسوب‬

‫ه الععوا النهائية نستنتج‬ ‫م تحليل‬

‫‪1‬ج او م الممك استادال النقاط السابقة بستاراج النقاط العحقةج‬


‫‪2‬ج او ويمة الجي والجي تمال تحس مرب واحدب فقط وبل حلقة التكرار‪ ،‬و ا‬
‫يقودنا الى او ومليا الرسل به ه الطريقة سوف تعتمد بشكل رئيس ولى‬
‫ومليا الجمع والطرحج‬
‫الدالة البرمجية لطريقة استادال الدوال الملللية ابوطاب‬

‫)‪void incremental_circle (int xc, int yc, float r‬‬


‫{‬
‫;‪float xtemp, x, y, cd, sd, dt‬‬
‫; ‪dt = 1/r‬‬
‫; )‪cd = cos (dt‬‬
‫; )‪sd = sin (dt‬‬
‫;‪x=0‬‬ ‫;‪y=r‬‬
‫{ )‪while (x <= y‬‬

‫; )‪putpixel (xc+x, yc+y, color‬‬


‫; )‪putpixel (xc+x, yc-y, color‬‬
‫; )‪putpixel (xc-x, yc+y, color‬‬
‫; )‪putpixel (xc-x, yc-y, color‬‬
‫; )‪putpixel (xc+y, yc+x, color‬‬
‫; )‪putpixel (xc+y, yc-x, color‬‬
‫; )‪putpixel (xc-y, yc+x, color‬‬
‫; )‪putpixel (xc-y, yc-x, color‬‬

‫‪109‬‬
‫اساسيات الرسم بالحاسوب‬

‫; ‪xtemp = x‬‬

‫; ‪x = x * cd – y * sd‬‬
‫; ‪y = y * cd + xtemp * sd‬‬
‫}‬
‫; )(‪getch‬‬
‫}‬

‫خوارزمية النقطة الوسطى ‪Midpoint Algorithm‬‬ ‫‪3.6‬‬


‫كما سبع وأسلفنا او الدائرب م الممك تمليلها رياضيا بمعادلة الدائرب‬
‫‪(x – xc)2 + (y – yc)2 = r2‬‬
‫باستادال ه المعادلة م الممك او نحس ويمة ‪ y‬لكل ويمة ‪ x‬يتل تحديد اج‬

‫=‪y‬‬

‫ه الطريقة ليست ملالية وفيها مشاكل تؤدي الى رسل دائرب ليست‬ ‫وود بينا او‬
‫ملاليةج‬
‫نا سنشرح قوارزمية اقرى تسمى قوارزمية النقطة الوسطى التي تعتمد ولى‬
‫معادلة الدائرب لكنها تقدل طريقة ماتلفة‪ ،‬حيث او مووع ونصر الصورب ولى طول‬
‫محيط الدائرب يحس بابستناد ولى حسابا الزيادب لمعامل القرارج‬

‫‪f(x, y) = (x – xc)2 + (y – yc)2 - r2 ………… 8‬‬

‫‪ f(x, y) = 0‬فاو المعادلة ‪ 8‬تملل معادلة الدائربج‬ ‫وليه‪ ،‬اذا كانت ويمة‬

‫‪110‬‬
‫اساسيات الرسم بالحاسوب‬

‫لنفرض او الدائرب المطلوب رسمها تتمركز في نقطة ابلل‪ ،‬ل لك فاو معادلة‬
‫الدائرب ستتحقع لجميع النقاط التي ولى محيط الدائرب مربع الوتر يساوي مجموع‬
‫مربعي الضلعي ابقري في المللث القائل الزاوية ج‬
‫‪r2 = x2 + y2‬‬
‫وبالتالي سنحصل ولى المعادلة ‪ 8A‬ي ذا المعادلة ‪ 8‬لك المركز في نقطة‬
‫ابلل‬

‫‪f (x, y) = x2 + y2 - r2 ---------------- 8A‬‬

‫اذا لل تتحقع ه المعادلة بمعنى او النتيجة ب تساوي لفر فه ا يعني او مربع‬


‫نصف القطر ب يساوي مربع الضلعي القائمي ج م ذلك نستطيع او نعحظ ثعث‬
‫حاب ماتلفة للنقاط المراد رسمها و ي‪:‬‬

‫‪1‬ج او تكوو النقطة المراد حسابها ي فعع ولى محيط الدائرب ملل النقطة ‪ C‬في‬
‫الشكل ‪3.9‬‬
‫‪f(x, y) = 0‬‬
‫ل لك فاو النقطة ‪ C‬التي ي احداثياتها )‪ (x, y‬ستكوو دالتها )‪ f(x, y‬تساوي‬
‫لفر لتساوي مربع نصف القطر ) ‪ (r‬مع مجموع مربع ابحداثيي )‪(x, y‬ج‬

‫‪111‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :3.9‬اقتيار النقطة الوسطىج‬

‫‪2‬ج ابو لنرى النقطة )‪ ،(B‬م الشكل ‪ 3.9‬واضح او ه النقطة ي داقل الدائرب‬
‫وليس ولى محيطها كما يج ‪ ،‬احداثياتها ي )‪ (xB, yB‬لو طبقنا وليها‬
‫المعادلة ‪ 8A‬سنحصل ولى او‬
‫‪f(x, y) < 0‬‬
‫السب و او ويمة نصف القطر ستبقى نفسها للدائرب )‪ (r‬وبالتالي فاو مربع نصف‬
‫القطر سيكوو أكبر م مجموع مربعي ابحداثيي )‪(xB, yB‬ج‬

‫‪3‬ج الحالة اللاللة ي النقطة ‪ A‬في الشكل ‪ 3.9‬وواضح انها قارج الدائرب ولها‬
‫ابحداثيا )‪ , (xA, yA‬ولو نف نا المعادلة ‪ 8A‬سنحصل ولى‬
‫‪f(x, y) > 0‬‬
‫مما سبع نستنتج نتيجة مهمة و ي وندما‬
‫‪f(x, y) = 0‬‬ ‫فاو النقطة ي ولى محيط الدائرب مباشرب‬
‫‪f(x, y) > 0‬‬ ‫فاو النقطة تقع قارج الدائرب‬
‫‪f(x, y) < 0‬‬ ‫فاو النقطة تقع داقل الدائرب‬
‫‪112‬‬
‫اساسيات الرسم بالحاسوب‬

‫ه الفكرب‬ ‫ابو لنعيد الكعل بطريقة اقرى ونرى كيف م الممك ابستفادب م‬
‫لرسل دائرب لها موالفا بيدب بحيث تكوو دائرب أورب الى الملاليةج سنستعي‬
‫بالشكل ‪ 3.10‬لغرض الولول الى قوارزمية رسل دائربج‬
‫واضح م الشكل ‪ 3.10‬او نقطة البداية ي )‪ ،(x, y‬ولكي يتل رسل الدائرب فعبد او‬
‫ناطو باطوا ثابتة ولى أحد المحاور ونجد القيمة المقابلة كما أسلفنا‪ ،‬وولنا او‬
‫الاطوا ستكوو باطوا ثابتة ولى المحور ‪ x‬وبمقدار وحدب واحدب في كل قطوب‬
‫ونجد ويمة ‪ y‬التي تقابلها باستادال معادلة الدائربج‬

‫شكل ‪ :3.10‬توضيح اقتيار النقطة الوسطىج‬

‫ابو وند زيادب ويمة ‪ x‬بمقدار وحدب واحدب فماذا يحدث؟ كما في الاوارزميا‬
‫السابقة فاو ويمة ‪ y‬اما او تبقى ثابتة او تقل بمقدار واحد وب يوبد احتمال ثالث ج‬
‫وليه فأي م ابحتمالي يتل اقتياره ويكوو و ابحتمال ابفضل لرسل الدائربج‬
‫في كع ابحتمالي ستتولد نقطة بديدب‪ ،‬ه النقطة اما او تكوو ولى محيط الدائرب‬
‫ه بميع‬ ‫الحقيقي و و المطلوب او تكوو قارج الدائرب او داقل الدائرب‬
‫ابحتماب الممكنة ‪ ،‬بكل ابحوال سنحاول حساب المسافة التي تفصل بي محيط‬
‫الدائرب الحقيقي المفترض والنقطة الجديدبج لنناوش ابحتمالي ‪:‬‬

‫‪113‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪A‬ج ابحتمال ابول او ويمة ‪ y‬ب تتغير وند زيادب ويمة )‪ (x‬بمقدار واحد تنتج )‪،(A‬‬
‫نا سنحس المسافة التي تفصل ه النقطة و محيط الدائرب الحقيقي وكما‬
‫يلي‬
‫‪dA = (x + 1)2 + y2 - r2‬‬

‫‪B‬ج ابحتمال اللاني او ويمة ‪ y‬تقل بمقدار وحدب واحدب وند زيادب ويمة )‪ (x‬بمقدار‬
‫واحد تنتج )‪ ،(B‬نا سنحس المسافة التي تفصل ه النقطة و محيط الدائرب‬
‫وكما يلي‪:‬‬
‫‪dB = (x + 1)2 + (y – 1)2 - r2‬‬

‫ابو لنناوش ابحتماب التي م الممك او تكوو وليها ويل )‪(dA, dB‬ج وسيكوو‬
‫مجموع المسافتي الدليل بقتيار النقطة المناسبةج‬
‫‪S = dA + dB‬‬

‫‪1‬ج اذا كانت ويمة كل م )‪ (dA, dB‬سالبة‬


‫‪dA <= 0 && dB < 0‬‬

‫ا يعني او النقطتاو )‪ (A, B‬داقل الدائرب كما سبع وبينا‪ ،‬وبالتالي فاو‬
‫النقطة ‪ A‬ي ابورب الى محيط الدائرب الحقيقي وسيتل اقتيار ا لتكوو احدى‬
‫نقاط الدائرب بنها ابورب الى محيط الدائرب الحقيقي كما في الشكل ‪3.11‬ج‬

‫‪114‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :3.11‬اقتيار النقطة الوسطىج‬

‫ج‬ ‫مجموع )‪ (dA, dB‬سيكوو سال ايضا بمع ويمتي سالبتي يكوو ناتجهل سال‬
‫نستنتج م ذلك‪ ،‬اذا كانت ويمة )‪ (S‬سالبة يتل اقتيار النقطة ‪A‬ج‬

‫‪2‬ج اذا كانت ويمة كل م )‪ (dA, dB‬موببة‬


‫‪dA > 0 && dB >= 0‬‬
‫ا يعني او النقطتاو )‪ (A, B‬قارج الدائرب‪ ،‬وبالتالي فستكوو النقطة ‪ B‬ي‬
‫ابورب الى محيط الدائرب الحقيقي كما في الشكل ‪3.12‬ج‬

‫‪115‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :3.12‬اقتيار النقطة الوسطىج‬

‫ج‬ ‫مجموع )‪ (dA, dB‬سيكوو موب بمع ويمتي موببتي يكوو ناتجهل موب‬
‫نستنتج م ذلك‪ ،‬اذا كانت ويمة )‪ (S‬موببة يتل اقتيار النقطة ‪B‬ج‬

‫اي احدا ا موببة واللانية سالبة ‪ ،‬اي‬ ‫‪3‬ج اذا كانت ويمة )‪ (dA, dB‬ماتلفتي‬
‫تكوو‬
‫‪dA > 0‬‬ ‫&&‬ ‫‪dB < 0‬‬

‫‪ (dA < 0‬وذلك بو‬ ‫&&‬ ‫مالحظة‪ :‬ب يمك او يكوو العكس )‪dB > 0‬‬
‫قط الدائرب الحقيقي ابفتراضي في ه الحالة يمر بي النقطتي ‪ ،‬و ا يعني او‬
‫نقطة ‪ A‬قارج الدائرب ونقطة ‪ B‬داقل الدائرب وب يوبد احتمال اقرج‬
‫في ه الحالة لدينا احتمالي و ماجج اما او تكوو ‪ dA‬اكبر م ‪ dB‬او العكسج‬

‫‪116‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪A‬ج فاذا كانت ‪ dA‬اكبر م ‪ dB‬فه ا يعني او مجموع القيمتي )‪ (S‬سيكوو ويمة‬
‫موببة بو القيمة ابكبر ‪ dA‬موببةج سيتل اقتيار النقطة ‪ B‬بنها ابورب الى‬
‫محيط الدائربج‬

‫مالحظة‪ :‬تل مقارنة القيل المطلقة بي )‪ (dA, dB‬بننا نقارو بي مسافتي ج‬

‫‪B‬ج اما إذا كانت ‪ dB‬اكبر م او تساوي ‪ dA‬فه ا يعني او مجموع القيمتي )‪(S‬‬
‫سيكوو ويمة سالبة بو القيمة ابكبر ‪ dB‬سالبةج سيتل اقتيار النقطة ‪ A‬بنها‬
‫ابورب الى محيط الدائربج‬

‫مما سبع ستكوو لدينا واودب مهمة تعتبر محور قوارزمية نقطة الوسط‪ ،‬و ي‬
‫إذا كانت ويل مجموع البعدي )‪ (S‬اكبر م لفر‪ ،‬فيتل اقتيار النقطة ‪ B‬وباعف‬
‫ذلك يتل اقتيار النقطة ‪A‬ج‬

‫الدالة البرمجية لرسل الدائرب بطريقة النقطة الوسطية‬


‫)‪void midpoint_circle (int xc, int yc, int r‬‬
‫{‬
‫;‪int dA, dB, s, x, y‬‬
‫;‪x=0‬‬ ‫;‪y=r‬‬

‫‪117‬‬
‫اساسيات الرسم بالحاسوب‬

while (x <= y) {

putpixel (xc+x, yc+y, color) ;


putpixel (xc+x, yc-y, color) ;
putpixel (xc-x, yc+y, color) ;
putpixel (xc-x, yc-y, color) ;
putpixel (xc+y, yc+x, color) ;
putpixel (xc+y, yc-x, color) ;
putpixel (xc-y, yc+x, color) ;
putpixel (xc-y, yc-x, color) ;

dA = pow ((x+1), 2) + pow (y, 2) – pow ( r, 2 ) ;


dB = pow ((x+1), 2) + pow ((y – 1), 2) – pow ( r, 2 ) ;

s = dA + dB ;
if ( s > 0 )
y=y–1;
x=x+1;
}
getch() ;
}

Ellipse ‫الشكل البيضوي‬ 3.7


‫ يحيط او يحتوي ولى اثناو‬،‫الشكل البيضوي في الرياضيا و منحني في مستوى‬
‫م نقاط البؤر بحيث او مجموع المسافا الى نقاط البؤر ابثناو و ثابت لكل‬
118
‫اساسيات الرسم بالحاسوب‬

‫م الشكل‬ ‫نقطة ولى المنحنيج الشكل البيضوي تعميل للدائرب والتي ي نوع قا‬
‫البيضوي لها بؤرتاو في نفس المووعج‬
‫ابشكال البيضوية لها اثناو م المحاور المتعامدب )‪ (a, b‬بحيث يكوو الشكل‬
‫ا التناظر فاو‬ ‫البيضوي متناظر حول ه المحاور‪ ،‬انظر الشكل ‪3.13‬ج وبسب‬
‫ه‬ ‫ه المحاور تتقاطع في مركز الشكل البيضوي )‪(C‬ج المحور األكبر م‬
‫المحاور ابثناو وال ي يقابل المسافة األكبر بي النقاط ولى الجانبي في الشكل‬
‫البيضوي يدوى المحور األكبر )‪ (major axis‬في الشكل ‪ 3.13‬و متملل بقطعة‬
‫ه المحاور‬ ‫الاط بي النقاط )‪ (-a, a‬ج المحور ابلغر )‪ (minor axis‬بي‬
‫والمسافة ابلغر بي النقطتي ولى بانبي الشكل البيضوي يسمى المحور ابلغر‬
‫في الشكل ‪ 3.13‬متملل بقطعة الاط بي النقاط )‪(-b, b‬‬

‫شكل ‪ :3.13‬الشكل البيضوي‬

‫البؤرتاو في الشكل البيضوي ما اثناو م النقاط الاالة )‪ (F1 , F2‬ولى المحور‬


‫الرئيس او ابكبر و ما متساويتا البعد و المركزج مجموع المسافا م أي نقطة‬
‫)‪ (P‬ولى حدود الشكل البيضوي الى اتي البؤرتي ي ثابته وتساوي طول‬
‫المحور الرئيس )‪(PF1 + PF2 = 2a‬‬
‫المسافة الى نقطة البؤرب م مركز الشكل البيضوي تسمى ابنحراف الاطي )) ‪(f‬‬
‫‪ ( linear eccentricity‬للشكل البيضويج‬

‫‪119‬‬
‫اساسيات الرسم بالحاسوب‬

‫معادلة الشكل البيضوي ي‬

‫‪ 3.7.1‬طريقة االحداثيات القطبية ‪Polar Coordinates Method‬‬


‫الشكل البيضوي يعرف ولى انه مجمووة م النقاط بحيث او مجموع المسافا م‬
‫مواوع البؤر ابثناو و نفسه لكل النقاط كما سبع واشرناج‬

‫شكل ‪ :3.14‬شكل بيضوي في مووع غير وياسيج‬

‫ثابت = ‪d1 + d2‬‬


‫م الممك توضيح المسافا )‪ (d1, d2‬بدبلة احداثيا البؤر ‪(F1(x1, y1),‬‬
‫))‪ F2(x2, y2‬الى اي نقطة ولى منحني الشكل البيضوي ))‪ ,(P(x, y‬نحصل ولى‬
‫الععوة التالية‬

‫‪120‬‬
‫اساسيات الرسم بالحاسوب‬

‫معادلة الشكل البيضوي م الممك تبسيطها بشكل كبير اذا كاو الشكل البيضوي‬
‫وياسي حيث يكوو كل م المحور الرئيس واللانوي متطابقة او موازية لمحاور‬
‫ابحداثيا السينية ج الشكل ‪ 3.15‬يوضح شكل بيضوي بمووع وياسي حيث او‬
‫المحور الرئيس يوازي ابحداثي )‪ (x‬بينما المحور اللانوي يوازي ابحداثي )‪،(y‬‬
‫بينما الشكل ‪ 3.14‬يوضح شكل بيضوي بمووع ليس وياسيج‬
‫المعامل )‪ (rx‬له ا الملال يملل نصف المحور الرئيس نصف القطر ابكبر ‪،‬‬
‫والمعامل )‪ (ry‬يملل نصف المحور اللانوي نصف القطر ابلغر للشكل‬
‫البيضويج معادلة الشكل البيضوي موضحة بالععوة التالية والتي م الممك كتابتها‬
‫بدبلة مركز الشكل البيضوي والمعامع )‪ (rx, ry‬ي‬

‫شكل ‪ :3.15‬شكل بيضوي في مووع وياسيج‬

‫‪…………………A‬‬

‫باستادال اإلحداثيا القطبية ) ‪ (r,‬فاننا م الممك ولف الشكل البيضوي في‬


‫المووع القياسي مع معادب المعامع‬

‫‪121‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪x = xc + rx . cos‬‬
‫‪y = yc + ry . sin‬‬

‫الدالة البرمجية لرسل الشكل البيضوي بطريقة ابحداثيا القطبية‬


‫)‪PolarEllipse (int xc, int yc, int rx, int ry‬‬
‫{‬
‫;‪int x = xc‬‬
‫; ‪int y = yc + ry‬‬
‫)‪for int (i = 0; i<=360 ; i++‬‬
‫{‬
‫; )‪putpixel (x, y, 5‬‬
‫; )‪x= xc + rx * cos (i‬‬
‫; )‪y = yc + ry * sin (i‬‬
‫}‬
‫}‬

‫‪ 3.7.2‬خوارزمية النقطة الوسطية لرسم الشكل البيضوي ‪MidPoint Ellipse‬‬


‫‪Algorithm‬‬
‫ه الطريقة مشابهة الى تلك التي تستادل مع ورض الدوائر النقطية اذا ما تل‬
‫معرفة المعامع )‪ (rx, ry‬والمركز )‪(xc, yc‬ج للسهولة‪ ،‬يفضل بداية حساب النقاط‬
‫)‪ (x, y‬للشكل البيضوي في المووع القياسي وندما يكوو مركزه نقطة ابلل‪،‬‬
‫ومحاوره موازية للمحاور السينية ‪ ،‬واذا كنا نرغ ورض الشكل البيضوي في‬
‫مووع ليس وياسي وند ا يتل نقل الشكل البيضوي الى المركز المطلوب )‪,(xc, yc‬‬
‫ك لك م الممك تدوير الشكل البيضوي حول احداثيا المركز إلوادب تموضع‬
‫المحور الرئيس والمحور اللانوي حس الوضع المطلوبج حاليا سنعتبر ورض‬
‫‪122‬‬
‫اساسيات الرسم بالحاسوب‬

‫الشكل البيضوي فقط في المووع القياسي‪ ،‬في الفصل القادل سندرس كيفية النقل‬
‫وتدوير ابشكال بشكل والج‬
‫كما وضحنا سابقا او ناك تناظر للدائرب‪ ،‬وك لك للشكل البيضوي الشكل ‪،3.16‬‬
‫ل لك فأننا سنحس النقاط للربع ابول فقط بتجزئتها بزأي او منطقتي كما في‬
‫الشكل ‪3.17‬ج‬

‫شكل ‪ :3.16‬تناظر الشكل البيضويج‬

‫شكل ‪ :3.17‬تقسيل الربع ابول م الشكل البيضوي الى منطقتي ج‬

‫‪123‬‬
‫اساسيات الرسم بالحاسوب‬

‫الشكل ‪ 3.17‬يوضح تقسيل الربع ابول الى منطقتي وفقا لميل الشكل البيضويج في‬
‫المنطقة )‪ (1‬فاو ميل المنحني سيكوو أكبر م )‪ ،(-1‬بينما في المنطقة )‪ (2‬فاو ميل‬
‫المنحني سيكوو ألغر م )‪(-1‬ج‬
‫م الممك البدأ بالنقطة )‪ (0, ry‬والسير باتجاه وقارب الساوة ولى طول مسار‬
‫الشكل البيضوي في الربع ابول‪ ،‬والتحول م الاطوا بمقدار وحدب واحدب ولى‬
‫المحور )‪ (x‬الى الاطوا بمقدار وحدب واحدب ولى المحور )‪ (y‬وندما يكوو الميل‬
‫الغر م ‪ 1-‬ج‬
‫ك لك م الممك البدأ وند النقطة )‪ (0, rx‬والسير باتجاه معاكس لدوراو وقارب‬
‫الساوة ولى طول مسار الشكل البيضوي والتحول م الاطوا ولى المحور )‪(y‬‬
‫الى الاطوا ولى المحور )‪ (x‬وندما يكوو ميل الشكل البيضوي أكبر م ‪ 1-‬ج‬
‫لو فرضنا اننا سنبدأ م النقطة )‪ (0, ry‬والسير ولى الشكل البيضوي باتجاه وقارب‬
‫الساوة قعل الربع ابولج‬
‫او دالة الشكل البيضوي م المعادلة ‪ A‬م الممك اوادب لياغتها بالشكل التالي‬
‫بحظ او الشكل البيضوي وياسي ومركزه في نقطة ابلل ))‪((xc, yc) = (0, 0‬ج‬

‫= )‪f (x, y‬‬ ‫‪---------------- B‬‬

‫باستادال الدالة )‪ f(x, y‬م الممك التنبؤ بإحداثيا النقطة العحقة )‪(x, y‬ج ونصر‬
‫الصورب المناسبة م الممك او يتل اقتياره وفقا إلشارب دالة الشكل البيضوي‪،‬‬
‫حيث سيتل وضع نقطة بي النقطتي المرشحتي وفحص اي م النقطتي‬
‫المرشحتي ستكوو أورب الى الاط الحقيقي لمنحني الشكل البيضويج وادب النقطة‬
‫ستوضع بمقدار قطأ مقداره نصف ونصر الصوربج‬
‫موالفا او احتماليا اشارب دالة الشكل البيضوي ي‬

‫‪124‬‬
‫اساسيات الرسم بالحاسوب‬

‫وند البدأ بالنقطة )‪ (0, ry‬فأننا سناطو ولى المحور ‪ x‬لحي الولول الى الحد‬
‫الفالل بي المنطقة ‪ 1‬والمنطقة ‪ ، 2‬بعد ا يتل التحول للسير باطوا ثابتة‬
‫مقدار ا وحدب واحدب ولى المحور )‪ (y‬ولى المتبقي م الشكل البيضوي في الربع‬
‫ابول كما سبع ونو ناج في كل قطوب فأننا نحتاج الى اقتبار الميل للمنحني وذلك‬
‫لتحديد المنطقة الفاللة بي المنطقة )‪ (1‬والمنطقة )‪(2‬ج ميل المنحني )‪(dy/dx‬‬
‫يحس كما يلي‬

‫في النقطة الفاللة بي المنطقة ‪ 1‬والمنطقة ‪ 2‬فاو‬


‫‪dy/dx = -1‬‬
‫و ا يعني او‬

‫وليه فأننا سنتحرك قارج المنطقة ‪ 1‬وندما تكوو‬

‫ابو لنحس النقاط ولى الشكل البيضوي ضم المنطقة )‪ ،(1‬بحظ الشكل ‪3.18‬‬
‫فاو )‪ (dy/dx > -1‬في المنطقة )‪(1‬ج‬
‫نا ويمة )‪ (x‬تزاد بمقدار واحد في كل قطوب اي او ويمة )‪ (x‬العحقة تساوي‬
‫ويمة )‪ (x‬السابقة مضاف لها واحد ‪ xk+1 = xk + 1‬ج‬
‫اما بالنسبة لإلحداثي )‪ (y‬فاو ويمتها تعتمد ولى أي م النقاط ابثناو )‪ (E, SE‬في‬
‫الشكل ‪ 3.18‬التي سيتل اقتيار اج فاذا تل اقتيار النقطة ‪ E‬فاو ويمة )‪ (y‬تبقى بدوو‬
‫تغيير‬

‫‪125‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪yk+1 = yk‬‬
‫اما اذا تل اقتيار النقطة ‪ SE‬فاو ويمة )‪ (y‬سيتل تقليلها بمقدار وحدب واحدب‬
‫ج‪yk+1 = yk – 1‬‬

‫لغرض او يتل اتااذ ورار بقتيار واحدب م النقاط )‪ (E, SE‬فاو نقطة التنبؤ‬
‫)‪ (xk+1, yk –1/2‬تضبط لتكوو نقطة وسط بي النقطتاو المرشحتاو )‪(E, SE‬‬
‫بحظ او النقطة المقترحة وضعت وسط بي كل م )‪ (yk, yk -1‬وبالتالي فاو كل‬
‫م )‪ (yk, yk -1‬تبعد بمسافة نصف ونصر لورب و النقطة المقترحة ج ك لك م‬
‫المهل ابنتباه الى او الاط الحقيقي لمنحني او محيط الشكل البيضوي يمر بي‬
‫النقطتي )‪(yk, yk -1‬ج‬
‫دالة التنبؤ م الممك او تعرف كما يلي و ي ذاتها دالة الشكل البيضوي ‪:‬‬

‫)‪P1k = f (xk + 1, yk – 1/2‬‬


‫‪= ry2 (xk + 1)2 + rx2 (yk – 1/2)2 – ry2 rx2‬‬
‫‪= ry2 (xk2 + 2 xk + 1) + rx2 (yk2 – yk + 1/4) – ry2 rx2‬‬

‫فاذا كانت ويمة )‪ (P1k < 0‬فيتل اقتيار ‪E‬ج‬


‫اذا كانت ويمة )‪ (P1k < 0‬فاو نقطة الوسط داقل الشكل البيضوي ا يعني او‬
‫النقطة )‪ (SE‬تبعد بمقدار نصف ونصر لورب مضاف لها المسافة بي النقطة‬
‫)‪ (P1k‬والمنحني الحقيقي للشكل البيضوي‪ ,‬و ا يشير الى او )‪ (SE‬ابعد م )‪(E‬‬
‫و محيط الشكل البيضوي الحقيقي ‪ ،‬وويمة )‪ (y‬التي سيتل اقتيار ا ي )‪ (yk‬ألنها‬
‫ابورب الى حدود الشكل البيضويج باعف ذلك فاو ويمة )‪ (y‬التي سيتل اقتيار ا‬
‫ستكوو )‪(yk – 1‬ج‬

‫‪126‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :3.18‬اقتيار نقطة في الشكل البيضويج‬

‫في المووع العحع )‪ (xk+1 + 1 = xk + 2‬اي بعد او ناطو بمقدار وحدب واحدب‬
‫ولى المحور ‪ ،x‬فاو معامل القرار يتل حسابه كما يلي‬
‫)‪P1k+1 = f (xk+1 + 1, yk+1 – 1/2‬‬
‫‪= ry2 [(xk + 1)+ 1 ]2 + rx2 (yk – 1/2)2 - ry2 rx2‬‬
‫او‬
‫] ‪P1k+1 = P1k + 2 ry2 (xk + 1) + ry2 + rx2 [(yk+1 – 1/2)2 - (yk – 1/2)2‬‬

‫حيث او )‪ (yk+1‬اما او تكوو )‪ (yk‬او )‪ (yk -1‬اوتمادا ولى اشارب ‪P1k+1‬‬


‫معامل القرار يتغير بالقيمة ) ( ادناه‬

‫ابو لنحس النقاط ولى الشكل البيضوي ضم المنطقة )‪ ,(2‬في المنطقة )‪ (2‬فاو‬
‫ميل المنحني يكوو )‪(dy/dx < -1‬ج‬

‫‪127‬‬
‫اساسيات الرسم بالحاسوب‬

‫نا ويمة )‪ (y‬تقل بمقدار واحد في كل قطوب اي او ويمة )‪ (y‬العحقة تساوي‬


‫ويمة )‪ (y‬السابقة مطروح منها واحد )‪ (yk+1 = yk – 1‬ج‬
‫اما بالنسبة لإلحداثي )‪ (x‬فاو ويمتها تعتمد ولى أي م النقاط ابثناو )‪ (E, SE‬في‬
‫الشكل يتل اقتيار اج فاذا تل اقتيار النقطة ‪ E‬فاو ويمة )‪ (x‬تبقى بدوو تغيير‬
‫‪xk+1 = xk‬‬
‫اما اذا تل اقتيار النقطة ‪ SE‬فاو ويمة )‪ (x‬سيتل زيادتها بمقدار وحدب واحدب‬
‫ج‪xk+1 = xk + 1‬‬
‫لغرض او يتل اتااذ ورار بقتيار واحدب م النقاط )‪ (S, SE‬فاو نقطة التنبؤ‬
‫)‪ (xk +1/2, yk -1‬تضبط لتكوو نقطة وسط بي النقطتاو المرشحتاو )‪(S, SE‬‬
‫بحظ او النقطة المقترحة وضعت وسط بي كل م )‪ (xk, xk +1‬وبالتالي فاو كل‬
‫م )‪ (xk, xk +1‬تبعد بمسافة نصف ونصر لورب و النقطة المقترحة ج ك لك‬
‫م المهل ابنتباه الى او الاط الحقيقي لمنحني او محيط الشكل البيضوي يمر بي‬
‫النقطتي )‪(xk, xk +1‬ج‬
‫دالة التنبؤ م الممك او تعرف كما يلي و ي ذاتها دالة الشكل البيضوي ‪:‬‬

‫)‪P2k = f (xk + 1/2, yk – 1‬‬


‫‪= ry2 (xk + 1/2)2 + rx2 (yk – 1)2 – ry2 rx2‬‬
‫‪= ry2 (xk2 + xk + 1/4) + rx2 (yk2 – 2 yk + 1) – ry2 rx2‬‬

‫اذا كانت ويمة )‪ (P2k < 0‬فسيتل اقتيار ‪SE‬‬


‫اذا كانت ويمة )‪ (P2k < 0‬فاو نقطة الوسط داقل الشكل البيضوي ا يعني او‬
‫النقطة )‪ (S‬تبعد بمقدار نصف ونصر لورب مضاف لها المسافة بي النقطة )‪(P2k‬‬
‫والمنحني الحقيقي للشكل البيضوي‪ ،‬و ا يشير الى او )‪ (S‬ابعد م )‪ (SE‬و‬
‫محيط الشكل البيضوي الحقيقي ‪ ،‬وويمة )‪ (x‬التي سيتل اقتيار ا ي )‪ (xk +1‬بنها‬

‫‪128‬‬
‫اساسيات الرسم بالحاسوب‬

‫ابورب الى حدود الشكل البيضويج باعف ذلك فاو ويمة )‪ (x‬التي سيتل اقتيار ا‬
‫ستكوو )‪(xk‬ج‬

‫شكل ‪ :3.19‬اقتيار النقاط في الشكل البيضويج‬

‫( والتي تل توضيحها وند حساب المنطقة )‪(1‬‬ ‫معامل القرار يتغير بالقيمة )‬

‫قطوا قوارزمية نقطة الوسط للشكل البيضوي‪:‬‬

‫‪1‬ج ادقال انصاف اوطار الشكل البيضوي )‪ ،(rx, ry‬وك لك مركز الشكل البيضوي‬
‫)‪(xc, yc‬ج‬
‫‪2‬ج تحديد النقطة ابولى او النقطة اببتدائية ولى الشكل البيضوي مع معحظة او‬
‫الشكل البيضوي يتمركز في نقطة ابلل ج‬
‫)‪(x0, y0) = (0, ry‬‬

‫‪3‬ج احس القيمة اببتدائية لمعامل القرار في المنطقة ‪ 1‬وكما يلي‬

‫‪P0 = ry2 (xk + 1)2 + rx2 (yk – 1/2)2 – ry2 rx2‬‬

‫‪4‬ج لكل ويمة )‪ (xk‬في المنطقة ‪ 1‬بداية تكوو ‪ k=0‬اومل ابقتبار التالي‪:‬‬

‫‪129‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪A‬ج اذا كانت )‪ (P1k < 0‬فاو القيمة العحقة ولى مسار الشكل البيضوي ي‬
‫)‪ (xk+1, yk‬يربى او تت كر باو مركز الشكل البيضوي و نقطة ابلل ج‬
‫وسيتل حساب معامل القرار العحع وفقا للععوة التالية‪:‬‬

‫‪P1k+1 = P1k +‬‬


‫‪P1k+1 = P1k + 2 ry2 xk+1 + ry2‬‬

‫‪B‬ج باعف ذلك اي وندما تكوو )‪ (Pk ≥ 0‬فاو النقطة العحقة ولى مسار الشكل‬
‫البيضوي ي )‪ (xk +1, yk -1‬وسيتل حساب معامل القرار العحع وفقا للععوة‬
‫التالية‪:‬‬

‫‪P1k+1 = P1k +‬‬


‫‪P1k+1 = P1k + 2 ry2 xk+1 - 2 rx2 yk+1 + ry2‬‬

‫‪C‬ج نستمر لحي او يتحقع الشرط‬


‫‪2 ry2 x ≥ 2 rx2 y‬‬

‫ه المنطقة‬ ‫‪5‬ج احس معامل القرار للمنطقة ‪ ، 2‬ولى اوتبار او نقطة البداية في‬
‫)‪ (x0, y0‬ي تساوي اقر نقطة تل حسابها في المنطقة ‪ ، 1‬وكما يلي‬

‫‪P20 = ry2 (x0 + 1/2)2 + rx2 (y0 - 1)2 - rx2 ry2‬‬

‫‪6‬ج لكل ويمة ) ‪ (yk‬في المنطقة ‪ 2‬بداية تكوو ‪ k=0‬اومل ابقتبار التالي‪:‬‬

‫‪130‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪A‬ج اذا كانت )‪ (P2k > 0‬فاو القيمة العحقة ولى مسار الشكل البيضوي ي‬
‫)‪ (xk, yk -1‬يربى او تت كر باو مركز الشكل البيضوي و نقطة ابلل ج‬
‫وسيتل حساب معامل القرار العحع وفقا للععوة التالية‪:‬‬
‫‪P2k+1 = P2k -‬‬
‫‪P2k+1 = P2k - 2 rx2 yk+1 + rx2‬‬

‫‪B‬ج باعف ذلك اي وندما تكوو )‪ (P2k ≤ 0‬فاو النقطة العحقة ولى مسار الشكل‬
‫البيضوي ي )‪ (xk +1, yk -1‬وسيتل حساب معامل القرار العحع وفقا للععوة‬
‫التالية‪:‬‬

‫‪P2k+1 = P2k +‬‬


‫‪P2k+1 = P2k + 2 ry2 xk+1 - 2 rx2 yk+1 + rx2‬‬

‫‪C‬ج استادال نفس معادلة الزيادب التي استادمت للمنطقة ‪ 1‬ج‬

‫‪7‬ج حساب النقاط التي سيتل اضا تها في ابرباع اللعث ابقرى بطريقة التناظرج‬
‫‪8‬ج اذا كاو المطلوب او يكوو مركز الشكل البيضوي في مكاو اقر ولى الشاشة‬
‫)‪ (xc, yc‬فيتل تحريك كل نقطة تل حسابها )‪ (x, y‬الى المووع المطلوبج‬
‫‪x = x + xc‬‬
‫‪y = y + yc‬‬

‫ملال‪ :‬اذا كانت )‪ ،(rx = 8, ry =6‬سوف نعمل ولى تتبع الاطوا التي ترسل‬
‫الشكل البيضوي باستادال قوارزمية النقطة الوسط ولى طول مسار الشكل‬
‫البيضوي في الربع ابولج‬
‫القيل اببتدائية وويمة الزيادب لمعامل القرار تحس كما يلي‬

‫‪131‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪2 ry2 x = 0‬‬ ‫مع تغير بمقدار ‪2 ry2 = 72‬‬


‫‪2 rx2 y = 2 rx2 ry‬‬ ‫مع تغير بمقدار ‪-2 rx2 = - 128‬‬

‫بالنسبة للمنطقة ‪ : 1‬القيمة اببتدائية ألول نقطة للشكل البيضوي ال ي مركزه في‬
‫نقطة ابلل ي‬
‫) )‪ ,((x0, y0) = (0, 6‬وويمة معامل القرار اببتدائية ي‬

‫‪P0 = ry2 (xk + 1)2 + rx2 (yk – 1/2)2 – ry2 rx2‬‬


‫‪= 36 (1) + 64 (5.5)2 – 64 . 36 = - 332‬‬

‫معامع القرار المتعاوبة ولى طول مسار الشكل البيضوي تحس باستادال النقطة‬
‫الوسط وكما في الجدول‬

‫‪k‬‬ ‫‪Pk‬‬ ‫)‪(xk+1, yk+1‬‬ ‫‪2 ry2 xk+1‬‬ ‫‪2 rx2 yk+1‬‬
‫‪0‬‬ ‫‪-332‬‬ ‫)‪(1, 6‬‬ ‫‪72‬‬ ‫‪768‬‬
‫‪1‬‬ ‫‪-224‬‬ ‫)‪(2, 6‬‬ ‫‪144‬‬ ‫‪768‬‬
‫‪2‬‬ ‫‪-44‬‬ ‫)‪(3, 6‬‬ ‫‪216‬‬ ‫‪768‬‬
‫‪3‬‬ ‫‪208‬‬ ‫)‪(4, 5‬‬ ‫‪288‬‬ ‫‪640‬‬
‫‪4‬‬ ‫‪-108‬‬ ‫)‪(5, 5‬‬ ‫‪360‬‬ ‫‪640‬‬
‫‪5‬‬ ‫‪288‬‬ ‫)‪(6, 4‬‬ ‫‪432‬‬ ‫‪512‬‬
‫‪6‬‬ ‫‪244‬‬ ‫)‪(7, 3‬‬ ‫‪504‬‬ ‫‪384‬‬

‫ابو البحنا نتحرك قارج المنطقة ‪ 1‬حيث او ) ‪(2 ry2 xk+1 > 2 rx2 yk+1‬‬
‫) ‪(504 > 384‬ج ل لك ننتقل الى المنطقة ‪ 2‬ج‬

‫‪132‬‬
‫اساسيات الرسم بالحاسوب‬

‫بالنسبة للمنطقة ‪ , 2‬القيمة اببتدائية ألول نقطة للشكل البيضوي ال ي مركزه في‬
‫نقطة ابلل ي‬
‫) )‪ ,((x0, y0) = (7, 3‬وويمة معامل القرار اببتدائية ي‬
‫)‪P0 = f (7+1/2, 2‬‬
‫‪P0 = ry2 (x0 + 1/2)2 + rx2 (y0 - 1)2 - rx2 ry2‬‬
‫‪= 36 (7.5)2 + 64 . 4 – 64 . 36 = -23‬‬
‫باوي النقاط موضحة بالجدول‬

‫‪k‬‬ ‫‪Pk (xk+1, yk+1) 2 ry2 xk+1‬‬ ‫‪2 rx2 yk+1‬‬


‫‪0 -23‬‬ ‫)‪(8, 2‬‬ ‫‪576‬‬ ‫‪256‬‬
‫‪1 361‬‬ ‫)‪(8, 1‬‬ ‫‪576‬‬ ‫‪128‬‬
‫‪2 169‬‬ ‫)‪(8, 0‬‬ ‫‪-‬‬ ‫‪-‬‬

‫رسل النقاط الناتجة للربع ابول م الشكل البيضوي ي في الشكل مع معحظة او‬
‫ابرباع اللعث ابقرى تستارج بالتناظر‬

‫شكل ‪ :3.20‬رسل نقاط الشكل البيضوي في الملال السابع‬

‫‪133‬‬
‫اساسيات الرسم بالحاسوب‬

‫الدالة البرمجية لرسل الشكل البيضوي بطريقة النقطة الوسط‬


void ellipseMidpoint ( int xCenter, int yCenter, int Rx, int Ry)
{
int Rx2 = Rx * Rx;
int Ry2 = Ry * Ry;
int twoRx2 = 2.Rx2;
int twoRy2 = 2*Ry2;
int p;
int x = 0;
int y = Ry;
int px = 0;
int py = twoRx2 * y;
void ellipsePlotPoints (int, int, int, int) ;

/* ‫* ارسل المجمووة ابولى م النقاط‬/

ellipsePlotPoints (xcenter, ycenter, x, y ) ;

/ * Region 1 *I

P = round (Ry2 - (Rx2 * Ry) + (0.25 * Rx2));


while (px < PY) {
x++;
px += twoRy2;
if (p < 0)

134
‫اساسيات الرسم بالحاسوب‬

p += Ry2 + px;
else {
y--;
py -= twoRx2;
p += Ry2 + px - py;
}
ellipseplotpoints (xcenter, ycenter, x, y) ;
}
/* Region 2 */
p = round (Ry2*(x+0.5) * (x+0.5)+ Rx2*(y- 1 ) * (y- 1 ) - Rx2 * Ry2);
while (y > 0 ) {
y--;
py -= twoRx2;
if (p > 0)
p += Rx2 - py;
else {
x++;
px += twoRy2:
p += Rx2 - PY + Px;
}
e1lipsePlotPoints ( xcenter , ycenter, x, yl) ;
}
}
void ellipsePointPlots ( int xcenter, int ycenter, int x, int y)
{
putpixel (xcenter + x, ycenter + y, 5) :

135
‫اساسيات الرسم بالحاسوب‬

putpixel (xcenter - x, ycencer + y, 5) ;


putpixel (xcenter + x, ycenter - y, 5);
putpixel (xcenter - x, ycenter - y, 5):
}

136
‫اساسيات الرسم بالحاسوب‬

‫الفص الرابع‬

‫التحويالت الثنائية االبعاد‬


‫‪2D TRANSFORMATION‬‬

‫المقدمة‬ ‫‪4.1‬‬
‫في الفصول السابقة تطرونا الى مبادئ انتاج الصورب رسل الصورب ج تكلمنا فقط‬
‫و توليد الاطوط والدوائر‪ ،‬دوو او نتحدث و دوال مشابهة م الممك او تكوو‬
‫مناسبة لألشكال ابقرى ابكلر تعقيدا والتي ي قارج مدى ا الكتابج‬
‫في العديد م الحاب ‪ ،‬م الممك دائما او تعامل الصور المعقدب ولى انها تجميع‬
‫للاطوط المستقيمة‪ ،‬الدوائر‪ ،‬وابشكال البيضوية جج الخج واذا كنا وادري ولى توليد‬
‫ه ابشكال ابساسية فأننا بالتأكيد وادري ولى توليد لورب تشترك بها ه‬
‫ابشكالج اذا ما ومنا برسل الصور‪ ،‬فاو الحابة ستبرز لتحويل ه الصوربج اننا‬
‫واوعا ب نغير الصورب بو ريا‪ ،‬لك الصورب التي في مركز الشاشة ملع ربما‬
‫تحتاج الى ازاحتها يمينا او يسارا‪ ،‬اولى او اسفل‪ ،‬تكبير او تصغير‪ ،‬تدوير باتجاه‬
‫وزاوية معينة و ك اج‬
‫في كل ه الحاب ‪ ،‬م الممك او نعرض الصورب الجديدب كصورب حقيقية بديدب‬
‫ونستادل قوارزميا الرسل لرسمها‪ ،‬لك الطريقة ابفضل او نتعامل مع شكلها‬
‫الحالي‪ ،‬ونحاول او نقول بعمليا حسابية ولى البيانا الجديدب لجعلها بالشكل‬
‫المطلوبج ا المبدأ يسمى التحويلج‬

‫انواع التحويالت ‪Types of Transformation‬‬ ‫‪4.2‬‬


‫ناك ودد م ومليا التحويل م الممك انجاز ا ولى اي كياو‪ ،‬ومليا‬
‫التحويل للكياو تتل بانجاز التحويل ولى كل نقطة م نقاط الكياوج ومليا‬
‫التحويل ي‪:‬‬

‫‪137‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 4.2.1‬النقل ‪Translation‬‬
‫و ي وملية نقل الشكل م مووعه الحالي في الشاشة الى اي مووع اقر في الشاشة‪،‬‬
‫ا م الممك انجازه بإضافة ويمة ثابتة الى احد المحاور او كع المحوري ج‬
‫لغرض نقل نقطة‪ ،‬فاو ويل ثابتة تضاف الى المحور ‪ x‬والمحور ‪ y‬للنقطة التي في‬
‫الشكل ‪4.1‬ج‬
‫ابحداثيا الجديدب بعد وملية نقل النقطة ي‬
‫‪x’ = x +tx‬‬
‫‪y’ = y + ty‬‬
‫او ويل معامل النقل )‪ (tx, ty‬تملل مقدار ابزاحة التي يتل بها نقل النقطة باتجاه ‪x‬‬
‫او ‪ y‬ولى التواليج وملية نقل الكياو م الممك او يتل باتجاه محور واحد افقي او‬
‫ومودي او م الممك او يكوو باتجاه مائلج او معامل النقل م الممك او يأق‬
‫اي ويمة مع مراواب حجل الشاشة وم الممك او يكوو النقل لألولى او ابسفل‬
‫وم الممك او يكوو يمينا او يساراج‬

‫شكل ‪ :4.1‬نقل نقطة الى مووع اقر داقل الشاشةج‬

‫‪138‬‬
‫اساسيات الرسم بالحاسوب‬

‫النقل مع معحظة نقطة ابلل‬ ‫مالحظة‪ :‬تعتمد حركة الكياو ولى ويل معامع‬
‫ولى الشاشة ‪ ،‬حيث ستكوو الحركة كما يلي‪:‬‬
‫اذا كانت )‪ (tx > 0‬فاو الحركة ستكوو الى اليمي ج‬
‫اذا كانت )‪ (tx < 0‬فاو الحركة ستكوو الى اليسارج‬
‫اذا كانت )‪ (ty > 0‬فاو الحركة ستكوو لألسفل اذا كانت نقطة ابلل للشاشة في‬
‫الزاوية اليسرى العليا ج‬
‫اذا كانت )‪ (ty < 0‬فاو الحركة ستكوو لألولىج‬
‫م الممك تحريك الكياو تنفي ا لمعامل النقل ابول ثل نحركة تنفي ا لمعامل النقل‬
‫اللاني اذا كاو المعامعو ب يساوياو لفر لينتج بالنهاية حركة مائلةج‬
‫فملع اذا كاو المتطل العال و تحريك الكياو الى مووع بديد‪ ،‬الكياو ابللي رسل‬
‫باستادال قطوط منقطة‪ ،‬والكياو المنقول رسل باستادال قط غير منقط فاو الشكل‬
‫سيتغير مووعه ولى الشاشة كما في الشكل ‪4.2‬ج‬

‫شكل ‪ :4.2‬نقل كياو الى مووع بديد داقل الشاشةج‬

‫مثال ‪ :1‬مطلوب تحريك المللث ال ي احداثيا رؤوسه ي‪:‬‬


‫))‪(A (3, 3), B(3, 8), C(11, 3‬‬
‫بمقدار اربع وحدا الى اليمي ووحدتاو الى ابولى نقطة ابلل في وسط‬
‫الشاشة ‪ ،‬بحظ الناتج في الشكل ‪4.3‬ج‬
‫‪tx = 4, ty = 2‬‬

‫‪139‬‬
‫اساسيات الرسم بالحاسوب‬

‫)‪A’ = (x+tx, y+ty) = (3+4, 3+2) = (7, 5‬‬


‫)‪B’ = (3+4, 8+2) = (7, 10‬‬
‫)‪C’ = (11+4, 3+2) = (15, 5‬‬

‫شكل ‪ :4.3‬تحريك مللث اربع وحدا الى اليمي ووحدتاو الى ابولىج‬

‫‪ 4.2.2‬التحجيم ‪Scaling‬‬
‫تحويع التحجيل تستادل م ابل تغيير ابعاد كياو معي ج ووندما نقول تغيير ابعاد‬
‫نقصد تكبير او تصغير بمقدار معامل الحجيل سوا كاو باتجاه محور واحد او‬
‫المحوري ج م الممك او يكوو معامل التحجيل متساوي لكع البعدي او ذا ويمة‬
‫ماتلفة لكل بعد محور ج التحجيل حول نقطة ابلل )‪ (0, 0‬م الممك انجاز ا‬
‫بضرب احداثيا النقطة )‪ (x, y‬بمعامل التحجيل احداثي النقطة ‪ x‬يضرب بمعامل‬
‫التحجيل ‪ ،Sx‬واحداثيا النقطة ‪ y‬يضرب بمعامل التحجيل ‪ Sy‬ج النقطة الجديدب بعد‬
‫وملية التحجيل ي‬
‫‪x’ = x . Sx‬‬
‫‪y’ = y . Sy‬‬
‫‪140‬‬
‫اساسيات الرسم بالحاسوب‬

‫ه الععوة باستادال المصفوفا وكما يلي‪:‬‬ ‫م الممك اوادب تمليل‬

‫اي نقطة في الكياو تضرب في ه المصفوفة لغرض تحجيمهاج م الممك اوادب‬


‫كتابة المصفوفة بدبلة اي نقطة يراد تحجيمها كما يلي‪:‬‬

‫مالحظة‪ :‬اذا كاو معامل التحجيل القيمة المطلقة )|‪ (|Sx|, |Sy‬اكبر م واحد فاو‬
‫التأثير سيكوو تكبير الكياو بمقدار معامل التحجيل‪ ،‬اما اذا كاو معامل التحجيل‬
‫الغر م واحد فاو التأثير سيكوو تصغيرج بالتأكيد ب يمك او يكوو معامل‬
‫التحجيل يساوي لفر او سال ج‬
‫مالحظة‪ :‬التحجيل م الممك او يكوو متجانس اذا كانت )‪ (Sx = Sy‬اي او وملية‬
‫التكبير او التصغير بابتجا ي )‪ (x, y‬ستكوو متساوية كما في الشكل ‪4.4‬ج ك لك‬
‫م الممك او يكوو التحجيل غير متجانس اذا كانت )‪ ،(sx ≠ sy‬أي او وملية‬
‫التكبير والتصغير غير متساوية بابتجا ي )‪ (x, y‬كما في الشكل ‪ 4.5‬والشكل‬
‫‪4.6‬ج‬

‫‪141‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.4‬تغيير حجل كياو بشكل متجانسج‬

‫شكل ‪ :4.5‬تغيير ابعاد الكياو بشكل غير متجانسج‬

‫الشكل ‪ 4.5‬يوضح اثناو م تحويع التحجيل غير المتجانسة‪ ،‬حيث او معاملي‬


‫التحجيل غير متساويي )‪(sx ≠ sy‬ج نا الكياو يغير ابعاده بقيل ماتلفة معامع‬
‫التحجيل باتجاه المحور ‪ x‬والمحور ‪y‬ج‬

‫‪142‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.6‬تغيير ابعاد بسل بشكل غير متجانسج‬


‫مالحظة‪ :‬اذا كاو معامل التحجيل باتجاه المحور ‪ x‬سال )‪ (sx < 0‬فاو الكياو‬
‫ينعكس حول المحور ‪y‬ج نفس الشي ‪ ،‬اذا كاو معامل التحجيل باتجاه المحور ‪y‬‬
‫سال )‪ (sy < 0‬وليه فاو الكياو سينعكس حول المحور ‪ x‬و ا موضوع اقر‬
‫سناتي وليه بحقاج‬
‫وندما يكوو معامل التحجيل سال فاو تأثير ا المعامل بالنسبة للتكبير او التصغير‬
‫يعمل كما سبع وشرحنا اي او ابعاد الكياو تتغير وفقا لمعامل التحجيل ‪ ،‬مع تأثير‬
‫ابنعكاس وكما و واضح في الشكل ‪ ،4.7‬و ا غالبا غير محب معامل التحجيل‬
‫السال ألنه سيغير مووع الجسل او الكياو‪ ،‬ل لك تجن المعامع السالبة واستادل‬
‫دائما معامل تحجيل موب ج‬

‫شكل ‪ :4.7‬تأثير معامل التحجيل السال ج‬

‫‪143‬‬
‫اساسيات الرسم بالحاسوب‬

‫مالحظة ‪ :‬وملية التحجيل تنجز ولى بميع نقاط الكياو وليس لنقطة او ودد مجتزأ‬
‫م نقاط الكياوج‬
‫مالحظة‪ :‬م المهل بدا ألبرا وملية التحجيل نقل الكياو الى نقطة ابلل ثل ابرا‬
‫وملية التحجيل وبعد ا اوادته الى مووعه ابللي ودل نقل الشكل الى نقطة ابلل‬
‫يؤدي الى تحجيل الشكل مع نقله الى مكاو اقر في الشاشة‪ ،‬كما في الشكل ‪ 4.8‬ج‬
‫لكي تكوو الفكرب اكلر وضوحا فاو الكياو وادب يتكوو م اكلر م نقطة واحدب‪،‬‬
‫وليه فاو احدى النقاط سيتل اوتبار ا نقطة ثابتة اي ستبقى بنفس احداثياتها بعد‬
‫ه النقطة ي التي سيتل اوتبار ا معامع النقل ويتل‬ ‫وملية التحجيل ‪ ،‬احداثيا‬
‫النقل الى نقطة ابلل بطرح ه المعامع م بميع احداثيا النقاط ابقرى‬
‫للشكل‪ ،‬بعد او يصبح الجسل في نقطة ابلل او نقطة م الشكل في نقطة‬
‫ابلل ‪ ،‬ول بأبرا وملية التحجيل‪ ،‬متى ما انجز وملية التحجيل وليك اوادب‬
‫الجسل الى مكانه ابللي وذلك بإضافة ذا معامل النقل ال ي طرح سابقا الى‬
‫بميع نقاط الكياوج‬

‫شكل ‪ :4.8‬تحجيل مللث بمقدار الضعف م دوو سحبه الى نقطة ابللج‬

‫‪144‬‬
‫اساسيات الرسم بالحاسوب‬

‫مثال ‪ :2‬مطلوب زيادب حجل المللث ال ي احداثياته‬


‫))‪(A (3, 3), B(3, 8), C(11, 3‬‬
‫بمقدار وحدتاو في كل ابتجا ا ج‬
‫اوال‪ :‬يتل سح المللث الى نقطة ابلل نا سنعتبر النقطة ‪ A‬ثابتة ‪,‬‬
‫الشكل )‪4.9 (2‬‬
‫‪tx = -3, ty = -3‬‬
‫)‪A = (3-3, 3-3) = (0, 0‬‬
‫)‪B = (3-3, 8-3) = (0, 5‬‬
‫)‪C = (11-3, 3-3) = (8, 0‬‬

‫معامع‬ ‫ثانيا ‪ :‬بعد اكمال تموضع الكياو في نقطة ابلل يتل التكبير وحس‬
‫التكبير التكبير ينجز ولى ابحداثيا الجديدب ج الشكل )‪4.9 (3‬‬

‫‪Sx = 2 ,‬‬ ‫‪Sy = 2‬‬


‫)‪A = (x * Sx, y * Sy) = (0 * 2, 0 * 2) = (0, 0‬‬
‫)‪B = (0 * 2, 5 * 2) = (0, 10‬‬
‫)‪C = (8 * 2, 0 * 2) = (16, 0‬‬

‫ثالثا‪ :‬يعاد تحريك المللث الى مووعه ابللي تتل وملية النقل المعاكس بنفس ويل‬
‫النقل ابولى مع اقتعف ابشارب ج الشكل )‪4.9 (4‬‬

‫‪tx = 3, ty = 3‬‬
‫)‪A = (x+tx, y+ty) = (0+3, 0+3) = (3, 3‬‬
‫)‪B = (0+3, 10+3) = (3, 13‬‬
‫)‪C = (16+3, 0+3) = (19, 3‬‬

‫‪145‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.9‬مراحل حل الملال ‪2‬ج‬

‫‪ 4.2.3‬التدوير ‪Rotation‬‬
‫نوع اقر معروف م ومليا التحويل و التدويرج والتدوير يستادل إلوادب ترتي‬
‫كياو معي ج الشكل ‪ 4.10‬يوضح كياو تل تدويره بزاوية مقدار ا حول نقطة‬
‫ابللج‬
‫معحظة‪ :‬التدوير و تدوير حول نقطة ابلل‪ ،‬و ناك تدوير حول نقطة معينه‬
‫سنتطرق له بحقاج‬

‫‪146‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.10‬تدوير شكلج‬

‫او تدوير نقطة واحدب في كياو موضحة بالشكل ‪4.11‬ج الاط المنقط ال ي يصل‬
‫النقطة )‪ (x, y‬مع نقطة ابلل يعمل زاوية )‪ (β‬مع المحور ‪ x‬وله طول مقداره ‪،r‬‬
‫ل لك فاو‬
‫‪x = r cos β‬‬
‫‪y = r sin β‬‬

‫شكل ‪ :4.11‬تدوير نقطة بزاوية مقدار ا )‪(α‬ج‬

‫‪147‬‬
‫اساسيات الرسم بالحاسوب‬

‫ابو بعد التدوير فاو احداثيا النقطة )’‪ (x’, y‬لها ويمة‬
‫)‪x’ = r . cos (β + α‬‬
‫)‪y’ = r . sin (β + α‬‬
‫نعوض و بي تمال وبي بمع زاويتي بما يساويهل حس وواود ببر الملللا ‪،‬‬
‫فتكوو النتيجة‬
‫‪sin (A + B) = sin A . cos B + sin B . cos A‬‬
‫‪cos (A + B) = cos A . cos B – sin A . sin B‬‬
‫)‪x’ = r . cos (β + α) = r ( cos β . cos α – sin β . sin α‬‬
‫‪x’ = r . cos β . cos α – r . sin β . sin α‬‬
‫)‪y’ = r . sin (β + α) = r (sin β . cos α + sin α . cos β‬‬
‫‪y’ = r . sin β . cos α + r . sin α . cos β‬‬

‫)‪ (r . cos β, r . sin β‬بما يساويها‪ ،‬ستكوو النتيجة‬ ‫اقيرا‪ ،‬نعوض و‬


‫‪x’ = x . cos α – y . sin α‬‬
‫‪y’ = x . sin α + y . cos α‬‬

‫مالحظة ‪ :‬في وملية التدوير يج او يكوو الكياو في نقطة ابلل كما سبع وبينا‬
‫في وملية التحجيلج ل لك يج او يتل نقل الكياو الى نقطة ابلل‪ ،‬التدوير‪ ،‬ثل النقل‬
‫الى مكانه ابلليج‬
‫م الممك تمليل الععوا العامة للتدوير ولى شكل مصفوفة وكما يلي‪:‬‬

‫ومنها نستنتج او )’‪ (x’, y‬تساوي‬

‫‪148‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪[x’ y’] = [ x . cos α - y. sin α‬‬ ‫]‪x . sin α + y . cos α‬‬

‫او زاوية التدوير م الممك او تكوو موببة او سالبة‪ ,‬بمعنى م الممك او يكوو‬
‫تدوير باتجاه دوراو وقارب الساوة او التدوير باتجاه معاكس لدوراو وقارب‬
‫الساوةج‬
‫بالنسبة للدوراو بزاوية موببه فاو التدوير سيكوو باتجاه معاكس بتجاه دوراو‬
‫وقارب الساوة كما في الشكل ‪ ،4.12‬في ه الحالة فاو المصفوفة الناتجة ي‬

‫شكل ‪ :4.12‬تدوير كياو باتجاه معاكس بتجاه دوراو وقارب الساوةج‬

‫اما اذا كانت زاوية الدوراو سالبة فاو اتجاه الدوراو سيكوو باتجاه دوراو وقارب‬
‫الساوة كما في الشكل ‪ ،4.13‬ويتل تمليلها بالمصفوفة التالية‪:‬‬

‫‪149‬‬
‫اساسيات الرسم بالحاسوب‬

‫حيث او‬
‫= ) ‪sin(-α ) = - sin α , cos(-α‬‬
‫وليه‪ ،‬فاو اي نقطة م الممك ضربها به ه المصفوفة لنحصل ولى احداثيا‬
‫بديدب تملل المووع الجديد للنقطة بعد التدوير مع معحظة او ا التدوير يحدث‬
‫وندما يكوو الكياو في نقطة ابلل ج م الممك او نكت الععوة لكل نقطة كما‬
‫يلي‪:‬‬

‫شكل ‪ :4.13‬تدوير بسل باتجاه دوراو وقارب الساوةج‬

‫التدوير حول نقطة معينه‪ :‬ناك نوواو م النقاط التي م الممك التدوير‬ ‫‪‬‬
‫حولهل‪ ،‬النوع ابول او تكوو النقطة داقل الكياو والنوع اللاني تكوو النقطة قارج‬
‫الكياوج في كلتا الحالتي فاو العملية بسيطة بدا وتتمحور ولى تحريك النقطة‬
‫‪150‬‬
‫اساسيات الرسم بالحاسوب‬

‫المراد التدوير حولها الى نقطة ابلل‪ ،‬سيتبع ا نقل بميع النقاط للكياو بنفس‬
‫المقدار ال ي نقلت به النقطة‪ ،‬ابرا وملية تدوير للكياو‪ ،‬واقيرا اوادب نقل الكياو‬
‫الى مووعه ابلليج‬
‫فلو فرضنا اننا نرغ التدوير حول النقطة )‪ (a, b‬فسيتل نقل بميع النقاط للكياو‬
‫بمقدار )‪ ,(a, b‬اي او معامع النقل ستكوو )‪ ,(tx = -a, ty = -b‬ابرا وملية‬
‫التدوير ولى النقاط الجديدب حس الزاوية وابتجاه المحددي ‪ ،‬نقل النقاط الجديدب‬
‫الى مووعها ابللي وذلك بإضافة معامع النقل الى النقاط الجديدب المتولدب بعد‬
‫التدوير بحيث تكوو‬
‫)‪(tx = a, ty = b‬‬

‫مثال ‪ :3‬مطلوب تدوير المللث ال ي احداثياته ))‪(A (3, 3), B(3, 8), C(11, 3‬‬
‫بمقدار ‪ 45‬دربة باتجاه معاكس لدوراو وقارب الساوةج‬
‫اوال‪ :‬يتل سح المللث الى نقطة ابلل نا سنعتبر النقطة ‪ A‬ثابتة ‪،‬‬
‫الشكل )‪4.14 (2‬‬
‫‪tx = -3, ty = -3‬‬
‫)‪A = (3-3, 3-3) = (0, 0‬‬
‫)‪B = (3-3, 8-3) = (0, 5‬‬
‫)‪C = (11-3, 3-3) = (8, 0‬‬

‫ثانيا‪ :‬تنفي وملية التدوير وحس مصفوفة التدويرج الشكل )‪4.14 (3‬‬

‫‪151‬‬
‫اساسيات الرسم بالحاسوب‬

‫ثالثا‪ :‬النقل المعاكس إلوادب الجسل الى موضعه ابلليج الشكل )‪4.14 (4‬‬
‫‪tx = 3,‬‬ ‫‪ty = 3‬‬
‫)‪A = ( 0+3, 0+3) = (3, 3‬‬
‫)‪B = (-3.5+3, 3.5+3) = (-0.5, 6.5‬‬
‫)‪C(5.65+3, 5.65+3) = (8.65, 8.65‬‬

‫شكل ‪ :4.14‬مراحل تدوير كياو بزاوية ‪ 45‬دربة وكس اتجاه دوراو وقارب الساوة ملال ‪3‬ج‬

‫‪152‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 4.2.4‬السحب ‪Shearing‬‬
‫تحويع السح لها تأثير ربما يؤدي الى تشويه الشكل ألي كياوج ناك نوواو م‬
‫السح و ما سح باتجاه المحور ‪ x‬وسح باتجاه المحور ‪ y‬وم الممك سح‬
‫بابتجا ي ج في ومليا السح ‪ ،‬فاو احد ابنواع يؤدي الى تغيير ويل احداثيا ‪x‬‬
‫والنوع اللاني يؤدي الى تغيير ويل احداثيا ‪y‬ج في كل ابحوال فاو السح باتجاه‬
‫واحد سيؤدي الى او تتغير ويل احد ابحداثيا بينما تبقى ويل ابحداثي ابقر ثابتة‪،‬‬
‫وم الممك او يكوو السح بابتجا ي كما في الشكل ‪4.15‬ج السح ايضا‬
‫يصطلح وليه انحراف )‪(skewing‬ج‬

‫شكل ‪ :4.15‬توضيح انواع السح ولى كياو ماج‬

‫الشكل ‪ 4.15‬يوضح ودد م ابنواع الماتلفة لتحويع السح التي طبقت ولى‬
‫كياو مستطيل الشكل الشكل المنقط ج الشكل ابول يوضح السح باتجاه المحور ‪x‬‬
‫بحيث او المحور ‪ x‬للنقاط ازيحت كدالة برتفاوهاج اما الشكل الوسط يوضح‬
‫السح باتجاه المحور ‪ ،y‬حيث او المحور ‪ y‬يتل ازاحته وفقا لمعامل السح ج‬
‫اقيرا‪ ،‬السح باتجا ي )‪ (x, y‬واضح في الجان ابيم م الشكل ‪4.15‬ج‬
‫ابحداثيا الجديدب )‪ (x, y‬للنقطة بعد السح ي‪:‬‬
‫‪x' = x + y × a‬‬
‫‪y' = y + x × b‬‬

‫‪153‬‬
‫اساسيات الرسم بالحاسوب‬

‫اذا كانت )‪ (a ≠ 0‬وكانت )‪ (b = 0‬فاو السح سيكوو في اتجاه المحور ‪x‬ج حيث‬
‫ستتغير ويل ‪ x‬بينما تبقى ويل ‪ y‬ثابتةج‬
‫واذا كانت )‪ (b ≠ 0‬وكانت )‪ (a = 0‬فاو السح سيكوو في اتجاه المحور‪y‬ج حيث‬
‫ستتغير ويل ‪ y‬بينما تبقى ويل ‪ x‬ثابتةج‬
‫اما اذا كانت )‪ (a ≠ 0‬وكانت )‪ (b ≠ 0‬فاو السح سيكوو بكع ابتجا ي )‪(x, y‬ج‬
‫وب لك فاو ويل كل م )‪ (x, y‬ستتغيرج‬

‫في اتجاه المحور ‪x‬‬ ‫الععوة اوعه م الممك تمليلها بمصفوفة‪ ،‬حيث او السح‬
‫يكوو كما يلي‪:‬‬

‫ه م الممك او نطبقها ولى بميع النقط في الكياو ال ي يراد سحبه كما يلي‪:‬‬

‫طريع‬ ‫اوادب تمليلها و‬ ‫الممك‬ ‫باتجاه المحور ‪ y‬م‬ ‫ك لك معادلة السح‬


‫المصفوفا وكما يلي‪:‬‬

‫و ه م الممك او نطبقها ولى اي نقطة للكياو كما يلي‪:‬‬

‫‪154‬‬
‫اساسيات الرسم بالحاسوب‬

‫السح باتجاه المحور ‪ x‬يحافظ ولى احداثيا ‪ ،y‬والتغيير يحدث في احداثيا ‪،x‬‬
‫وال ي يسب بميل الاطوط العمودية الى اليمي او الى اليسار كما في الشكل ‪4.16‬ج‬
‫اذا كانت ويل )‪ (a or b‬سالبة فيكوو السح بابتجاه المعاكسج‬

‫شكل ‪ :4.16‬سح كياو باتجاه ‪x‬ج‬

‫بينما السح باتجاه المحور ‪ y‬يحافظ ولى احداثيا ‪ x‬ويغير احداثيا ‪ y‬وال ي‬
‫يتسب او تتحول الاطوط ابفقية الى قطوط لها ميل لألولى او لألسفل كما في‬
‫الشكل ‪4.17‬ج‬

‫شكل ‪ :4.17‬سح كياو باتجاه ‪y‬ج‬

‫‪155‬‬
‫اساسيات الرسم بالحاسوب‬

‫مالحظة ‪ :‬ومليا السح تتبع ذا النظال ال ي اتبع في ومليا التحجيل والتدوير‬


‫و و او يتل نقل الكياو الى نقطة ابلل اذا لل يك في نقطة ابلل‪ ،‬ابرا ومليا‬
‫السح ‪ ،‬ثل اوادب الكياو الى مووعه ابلليج بكل ابحوال ا يتل بتلبيت احدى‬
‫نقاط الكياو كما سبع ووضحناج‬

‫‪ 4.2.5‬االنعكاس ‪Reflection‬‬
‫ابنعكاس و لورب الكياو ابللي في المرآبج بكعل اقر‪ ،‬م الممك القول انها‬
‫وملية تدوير بزاوية ‪ 180‬دربة‪ ،‬مع معحظة او حجل الكياو ب يتغيرج‬
‫ابنعكاس م الممك او يكوو حول المحور ‪ ،x‬حول المحور ‪ ،y‬حول نقطة‬
‫ابلل‪ ،‬حول المحور‪ ،y = x‬وحول المحور ‪y = -x‬ج بحظ الشكل ‪4.18‬ج‬

‫شكل ‪ :4.18‬انواع ابنعكاسا ج‬

‫‪156‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬انواع االنعكاسات‬

‫‪1‬ج االنعكاس حول المحور ‪ :x‬في ه الحالة وكما في الشكل ‪ 4.19‬فاو ويل‬
‫ابحداثيا في المحور ‪ x‬ب تتغير‪ ،‬بينما ويل ابحداثيا في المحور ‪y‬‬
‫تضرب بسال واحد مع المحافظة ولى ويمها المطلقة بكعل دويع تتغير‬
‫اشارتها اذا موببة تصبح سالبة واذا سالبة تصبح موببة دوو او تتغير‬
‫ويمها ج‬
‫‪x’ = x‬‬
‫‪y’ = - y‬‬
‫م الممك تمليل وعوة ابنعكاس حول المحور ‪ x‬ولى شكل مصفوفة كما‬
‫يلي‪:‬‬

‫شكل ‪ :4.20‬انعكاس كياو حول المحور ‪x‬ج‬

‫‪157‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.21‬انعكاس حول المحور ‪x‬ج‬

‫‪2‬ج االنعكاس حول المحور ‪ :y‬نا ويل احداثيا المحور ‪ y‬تبقى كما ي دوو‬
‫تغيير بينما ويل ابحداثي ‪ x‬تضرب بسال واحد تتغير اشارتها ‪ ،‬بحظ‬
‫الشكل ‪4.20‬ج‬
‫‪x’ = -x‬‬
‫‪y’ = y‬‬
‫م الممك تمليل وعوة ابنعكاس حول المحور ‪ y‬ولى شكل مصفوفة كما‬
‫يلي‪:‬‬

‫‪158‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.22‬انعكاس حول المحور ‪y‬ج‬

‫شكل ‪ :4.23‬انعكاس حول المحور ‪y‬ج‬

‫‪3‬ج االنعكاس حول نقطة االصل‪ :‬نعحظ في الشكل ‪ 4.24‬او الكياو يتحول م‬
‫الربع ابول الى الربع اللالث بشكل وال يتحول الى الربع المقابل باتجاه‬
‫نقطة ابلل و ا يعني او ويل ابحداثيا بي نقطة في الكياو )‪(x, y‬‬
‫تكوو كع ما سالبة كل واحد منهل يضرب بسال واحد ‪ ،‬بكعل اقر فاو‬
‫احداثيا كل م )‪ (x, y‬تتغير اشارتها‪ ،‬بحظ الشكل ‪4.24‬ج‬
‫‪x’ = -x‬‬

‫‪159‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪y’ = -y‬‬
‫ه الععوا م الممك او يعاد تمليلها ولى شكل مصفوفة كما يلي‪:‬‬

‫شكل ‪ :4.24‬انعكاس حول نقطة ابللج‬

‫‪160‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.25‬انعكاس حول نقطة ابللج‬

‫‪x‬‬ ‫‪4‬ج االنعكاس حول المحور ‪ :y = x‬في ا ابنعكاس فاو ويل ابحداثيا‬
‫ستبدل مع ويل احداثيا ‪ ،y‬بحظ الشكل ‪4.26‬ج‬
‫‪x’ = y‬‬
‫‪y’ = x‬‬
‫م الممك تمليلها ولى شكل مصفوفة فتكوو‪:‬‬

‫‪161‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.26‬ابنعكاس حول المحور ‪y = x‬ج‬

‫شكل ‪ :4.27‬ابنعكاس حول المحور ‪y=x‬ج‬

‫‪5‬ج االنعكاس حول المحور ‪ :y = - x‬في ه الحالة فاو ويل ابحداثيا ولى‬
‫المحور ‪ x‬ستبدل مع ويل ابحداثيا ولى المحور ‪ ، y‬ك لك سيحدث تغيير‬
‫بإشارب كع القيمتي ج‬
‫‪x’ = -y‬‬
‫‪y’ = -x‬‬
‫م الممك تمليلها ولى شكل مصفوفة كما يلي‪:‬‬
‫‪162‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :4.28‬ابنعكاس حول المحور ‪y=-x‬ج‬

‫شكل ‪ :4.29‬ابنعكاس حول المحور ‪y=-x‬ج‬

‫‪163‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 4.3‬المصفوفة المتجانسة‬
‫مما سبع نعحظ اننا مللنا غالبية العمليا باستادال مصفوفا ثنائية و ه‬
‫المصفوفا مناسبة لكل واحدب م العمليا التي اشرنا لها لغاية ابو النقل‪،‬‬
‫التحجيل‪ ،‬التدوير ‪ ،‬اب او ناك حابة لتمليل ومليا التحويل اللعث بواسطة‬
‫مصفوفة واحدج‬
‫في المصفوفا المتجانسة سيتل اضافة احداثي ثالث للنقطةج فبدب م تمليل النقطة‬
‫بزوج م ابحداثيا )‪ (x, y‬سيتل تمليلها بلعث احداثيا )‪(x, y, W‬ج‬
‫بنفس الووت نقول و زوج م ابحداثيا المتجانسة )’‪(x, y, W), (x’, y’, W‬‬
‫انهما تملعو نفس النقطة اذا واذا فقط كانت احدا ل ناتجة م ضرب ابقرى‬
‫بمقدار محدد فملع )‪ ( 1, 2, 3), (2, 4, 6‬ي نفس النقطة بالرغل م انهل ممللة‬
‫بإحداثيا ثعثية ماتلفة بو النقطة اللانية ناتجة م ضرب ابولى بمقدار ‪ 2‬ج‬
‫وليه‪ ،‬فاو كل نقطة لها ودد م تمليع ابحداثيا المتجانسةج ايضا‪ ،‬يج ولى‬
‫ا بول او تكوو واحدب م احداثيا النقطة المتجانسة ب تساوي لفرج اما النقطة‬
‫)‪ (0, 0, 0‬فه ه غير مسموح بها في ابحداثيا المتجانسةج‬
‫اذا كانت ‪ W‬ب تساوي لفر فيكوو باإلمكاو او نقسل وليهاج فالنقطة )‪(x, y, W‬‬
‫ي نفس النقطة )‪ (x/W, y/W, 1‬ج فعندما تكوو ‪ W‬ب تساوي لفر فيكوو م‬
‫الممك القسمة وليها وابحداثيا )‪ (x/W, y/W‬تسمى ابحداثيا الديكارتيه‬
‫للنقطة المتجانسةج‬
‫نا‬ ‫ابحداثيا اللعثية للنقطة وادب تظهر مع ابشكال اللعثية اببعاد‪ ،‬لك‬
‫نستادمها لتمليل نقطة ثنائية اببعادج الفكرب اذا اق نا كل التمليع اللعثية لتمليل‬
‫نقطة‪ ،‬فاو ابشكال اللعثية )‪ (tx, ty, tW‬وندما )‪ (t‬ب تساوي لفر سنحصل منها‬
‫ولى قط في الفضا اللعثي اببعادج وليه‪ ،‬كل نقطة متجانسة تملل قط في الفضا‬
‫اللعثي اببعادج اذا تل مجانسة النقطة بقسمتها ولى‪ W‬سنحصل ولى نقطة ولى‬

‫‪164‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل )‪(x, y, 1‬ج ل لك‪ ،‬النقاط المتجانسة تشكل مستوى يعرف بالمعادلة )‪(W = 1‬‬
‫في الفضا )‪(x, y, W‬ج الشكل ‪ 4.30‬يوضح ه الععوةج‬

‫شكل ‪ (XYW) :4.30‬فضا ابحداثيا المتجانس‪ ،‬مع مستوى ‪ W=1‬وتل تسقيط النقطة ‪P(X,‬‬
‫)‪ Y, W‬ولى المستوى ‪W=1‬‬

‫ونظرا الى او النقاط البحت تملل بمتجها بلعث اومدب‪ ،‬فاو مصفوفة التحويل‬
‫والتي تضرب بها متجه النقطة إلنتاج متجه نقطة اقرى يج او تكوو مصفوفة‬
‫ثعثية )‪(3×3‬ج في المصفوفا المتجانسة ابحداثيا )‪ (3×3‬فاو‪:‬‬

‫‪ ‬معادلة النقل ستكوو‬


‫]‪T = [x’ y’ 1] = [x y 1‬‬

‫‪ ‬معادلة التحجيل ستكوو‬

‫‪165‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬معادلة التدوير ستكوو‬

‫معادلة السح باستادال المصفوفة المتجانسة ستكوو‬

‫‪ ‬معادلة ابنعكاس باستادال المصفوفة المتجانسة ستكوو‬

‫‪166‬‬
‫اساسيات الرسم بالحاسوب‬

‫ا الفصل‬ ‫البرنامج الكامل للعمليا التي تل توضيحها في‬

#include<iostream>
#include<graphics>
#include<stdio>
#include<math>
Include<conio>
#include<stdlib>
using namespace std;
int n, midx, middy, maxx, maxy; // ‫متغيرا وامة‬

167
‫اساسيات الرسم بالحاسوب‬

int A[15], B[15], x[15], y[15], CX[15], CY[15], Dx[15], Dy[15]; // ‫متغيرا‬
‫وامة‬
void DDA_Line (int x0, int y0, int x1, int y1) // ‫لرسل الاطوط‬
{ int j, dx, dy, steps; float x, y, xinc, yinc ;
x = xo ; y = yo ;
steps = abs (x1 - xo) ; dy = abs (y1 - yo) ;
if (steps < dy )
steps = dy ;
xinc = x/steps ; yinc = y/steps ;
for ( j= 0; j<= steps ; j++) {
putpixel (int (x), int (y), 5) ;
x = x + xinc ;
y = y + yinc ;
}
}
void Set( ) // ‫اسناد القيل ابللية الى متغيرا وسطية مؤوتة‬
{
for (int j=1 ; j <= n ; j++)
{
x[j] = A[j] ;
y[j] = B[j] ;
}
void Normalization ( ) // ‫لتحديد مركز الشاشة ولى انها نقطة ابلل‬
{
for (int j=1 ; j <= n ; j++)

168
‫اساسيات الرسم بالحاسوب‬

{
CX[j] = x[j] /2 + midx ;
CY[j] = midy – y[j]/2 ;
DX[j] = A[j]/2 + midx ;
DY[j] = midy – B[j]/2 ;
}
}
void DisplayR ( ) // ‫ورض لور ومليا ابنعكاس‬
{
cleardevice ();
setcolor (5) ;
DDA_Line (0, midy, maxx, midy) ;
DDA_Line (midx, 0, midx, maxy) ;
for (int j=1 ; j <= n ; j++)
DDA_Line (Dx[j], Dy[j], Dx[j+1], Dy[j+1]) ;
DDA_Line (Dx[n], Dy[n], Dx[1], Dy[1]) ;
for (int j=1 ; j <= n ; j++)
DDA_Line (CX[j], CY[j], CX[j+1], CY[j+1]) ;
DDA_Line (CX[n], CY[n], CX[1], CY[1]) ;
system (“pause”);
}
void Translation (int tx, int ty) // ‫نقل كياو‬
{
for (int j=1 ; j <= n ; j++)
{
x[j] = x[j] + tx ;

169
‫اساسيات الرسم بالحاسوب‬

y[j] = y[j] + ty ;
}
}
void Scaling (float sx, float sy) // ‫تحجيل كياو‬
{
for (int j=1 ; j <= n ; j++)
{
x[j] = x[j] * sx ;
y[j] = y[j] * sy ;
}
}
void ClockRotation (float theta) // ‫تدوير كياو بتجاه دوراو وقارب الساوة‬
{ int xtemp;
float c=cos(theta);
float s=sin(theta);
for (int j=1; j<=n; j++)
{
xtemp = x[j] ;
x[j] = x[j] * c - y[j] * s ;
y[j] = y[j] * c + xtemp * s ;
}
}
void CounterRotation (float theta) // ‫تدوير كياو باتج اه مع اكس ل دوراو وق ارب‬
‫الساوة‬
{ int xtemp;

170
‫اساسيات الرسم بالحاسوب‬

float c=cos(theta);
float s=sin(theta);
for (int j=1; j<=n; j++)
{ xtemp = x[j] ;
x[j] = x[j] * c + y[j] * s ;
y[j] = y[j] * c – xtemp * s ;
}

void Y_reflect() // y ‫انعكاس حول المحور‬


{
for (int j = 1; j<= n ; j++)
x[j] = -1 * x[j] ;
}
void X_Reflect () // x ‫انعكاس حول المحور‬
{
for (int j = 1; j<= n ; j++)
y[j] = -1 * y[j] ;
}

void OriginReflect () // ‫انعكاس حول نقطة ابلل‬


{
for (int I = 1; i<= n ; i++)
x[i] = -1 * x[i] ;
y[i] = -1 * y[i] ;
}

171
‫اساسيات الرسم بالحاسوب‬

void XY_Reflect () // x=y ‫انعكس حول المحور‬


{ int xtemp ;
for (int j=1; j<=n; j++)
{
xtemp = x[j] ;
x[j] = y[j];
y[j] = xtemp ;
} }

void XNY_Reflect () // x = -y ‫انعكاس حول المحور‬


{ int xtemp ;
for (int j=1; j<=n; j++)
{
xtemp = x[j] ;
x[j] = y[j] * (-1) ;
y[j] = xtemp * (-1) ;
}
}

void X_Shear (float b) // x ‫سح الكياو باتجاه المحور‬


{
cleardevice () ;
for (int j=1; j<=n; j++)
x[j] = x[j] + b * y[j] ;
}

172
‫اساسيات الرسم بالحاسوب‬

void Y_Shear (float a) // y ‫سح الكياو باتجاه المحور‬


{
cleardevice () ;
for (int j=1; j<=n; j++)
y[j] = a * x[j] + y[j] ;
}

void Display () // ‫ورض الصور ماودا لور ابنعكاس‬


{
cleardevice () ;
for (int j = 2 ; j <= n-1 ; j++)
DDA_Line ( x[j] , y [j] , x[j+1] , y[j+1] ) ;
DDA_Line ( x[n] , y [n] , x[1] , y[1] ) ;
system (“pause”) ;
}

void main ()
{
int gd, gm ;
gd = DETECT, gm, x, y ;
initgraph (&gd, &gm, “c:\\ turboc3\\bgi “) ;
maxx = getmaxx() ;
midx = maxx / 2 ;
maxy = getmaxy( ) ;
midy = maxy / 2 ;

173
‫اساسيات الرسم بالحاسوب‬

cleardevice() ;
setbkcolor(10) ;
setcolor(5) ;
settextstyle (3, 0, 2) ;
outtextxy(midx-120, 100, “ Graphics Transformation Operations”) ;
outtextxy(midx-90, 140, “Program Designed by “) ;
setcolor(12) ;
outtextxy(mdx-120, 180, “ Prof. Dr. Nidhal El Abbadi”);
cetcolor(8) ;
outtextxy (midx-100, 220, “ University of Kufa”) ;
system (“pause”) ;
cleardevice();
setbkcolor (1) ;
settextstyle(0, 0, 1) ;
int k, r, tx, ty ;
float theta, sx, sy ;
char ch ; int fixpoint=1 ;
cout << “ Enter number of vertices \n “ ;
cout<< n ;
for ( int i=1 ; i <= n ; i++)
{
cout << “ Enter x “ ; << i << “value \n “ ;
cin >>A[i] ;
x[i] = A[i] ;
cout <<”Enter y” << i << value\n” ;

174
‫اساسيات الرسم بالحاسوب‬

cin >> B[i] ;


y[i] = B[i] ;
}
do
{
cleardevice () ;
setcolor(11) ;
outtextxy (midx – 20 , 80, “ 0- Display Picture “ ) ;
outtextxy (midx – 20 , 100, “ 1- Translation “ ) ;
outtextxy (midx – 20 , 120, “ 2- Scaling “ ) ;
outtextxy (midx – 20 , 140, “ 3- Rotation “ ) ;
outtextxy (midx – 20 , 160, “ 4- X_Reflect “ ) ;
outtextxy (midx – 20 , 180, “ 5- Y_Reflect“ ) ;
outtextxy (midx – 20 , 200, “ 6- Reflect about Origin “ ) ;
outtextxy (midx – 20 , 220, “ 7- Reflect about y=x “ ) ;
outtextxy (midx – 20 , 240, “ 8- Reflect about y= -x “ ) ;
outtextxy (midx – 20 , 260, “ 9- X_Shear “ ) ;
outtextxy (midx – 20 , 280, “ 10- Y_Shear “ ) ;
outtextxy (midx – 20 , 300, “ 11- Exit “ ) ;
outtextxy (midx – 20 , 320, “ Choose one of above “ ) ;
cin >> k ;
if (k != 11)
{
setcolor (4) ;
outtextxy (midx – 20 , 350, “ If you want to work on origin coordinates
values”) ;

175
‫اساسيات الرسم بالحاسوب‬

outtextxy (midx – 20 , 370, “Print (y), otherwise print (n) “ ) ;


cin>> ch ;
if (ch == ‘n’)
Set( ) ;
switch (k) {
case 0:
Display() ; break ;
case 1:
cleardevice () ;
outtextxy (midx – 20 , 80, “Enter Translation Factors “ ) ;
outtextxy (midx – 20 , 100, “tx = “ ) ;
cin >> tx ;
outtextxy (midx – 20 , 120, “ty = “ ) ;
cin>> ty ;
Translation (tx, ty) ;
Display () ;
break ;
case 2:
cleardevice() ;
outtextxy (midx – 20 , 80, “Enter Scaling Factors “ ) ;
outtextxy (midx – 20 , 100, “sx = “ ) ;
cin >> sx ;
outtextxy (midx – 20 , 120, “sy = “ ) ;
cin>> sy ;

176
‫اساسيات الرسم بالحاسوب‬

outtextxy (midx – 20 , 140, “Please Enter the Number of Fix


Point”) ;
cin>> fixpoint ;
if ((fixpoint > n)||(fixpoint <=0))
{
outtextxy (midx – 20 , 160, “Error.. out of Range, the default
fixed point (1), will be used “ ) ;
tx = - x[1] ;
ty = - [1] ;
}
else
{
tx = - x[fixpoint] ;
ty = - [fixpoint] ;
}
Translation (tx, ty) ;
Scaling (sx, sy) ;
Translation (-tx, -ty) ;
Display () ;
break ;
case 3:
cleardevice () ;
outtextxy (midx – 20 , 140, “Please Enter the Rotation Angle”) ;
cin>> theta;
setcolor(2) ;
outtextxy (midx – 20 , 100, “1 – Clockwise Rotation”) ;

177
‫اساسيات الرسم بالحاسوب‬

outtextxy (midx – 20 , 120, “2 – Counterclockwise Rotation”) ;


outtextxy (midx – 20 , 140, “Choose the proper rotation direction”)
;
cin >> R ;
setcolor(12) ;
outtextxy (midx – 20 , 160, “Please Enter the Number of Fix
Point”) ;
cin>> fixpoint ;
if ((fixpoint > n)||(fixpoint <=0))
{
outtextxy (midx – 20 , 180, “Error.. out of Range, the default
fixed point (1), will be used “ ) ;
tx = - x[1] ;
ty = - [1] ;
}
else
{
tx = - x[fixpoint] ;
ty = - [fixpoint] ;
}
if (r==1)
Translation (tx, ty) ;
ClockRotation (theta) ;
Translation (-tx, -ty) ;
}

178
‫اساسيات الرسم بالحاسوب‬

else
Translation (tx, ty) ;
CounterRotation (theta) ;
Translation (-tx, -ty) ;
}
Display () ;
break ;
case 4:
X_Reflect () ;
Normalization( ) ;
DisplayR ();
break ;
case 5:
Y_Reflect () ;
Normalization( ) ;
DisplayR ();
break ;
case 6:
OriginReflect () ;
Normalization( ) ;
DisplayR ();
break ;
case 7:
XY_Reflect () ;
Normalization( ) ;
DisplayR ();

179
‫اساسيات الرسم بالحاسوب‬

break ;
case 8:
XNY_Reflect () ;
Normalization( ) ;
DisplayR ();
break ;
case 9:
cleardevice() ;
outtextxy(midx-20, 100,”Enter X_Shear Factor”);
float b;
cin>> b;
setcolor(12) ;
outtextxy (midx – 20 , 130, “Please Enter the Number of Fix
Point”) ;
cin>> fixpoint ;
if ((fixpoint > n)||(fixpoint <=0))
{
outtextxy (midx – 20 , 180, “Error.. out of Range, the default
fixed point (1), will be used “ ) ;
tx = - x[1] ;
ty = - [1] ;
}
else
{
tx = - x[fixpoint] ;

180
‫اساسيات الرسم بالحاسوب‬

ty = - [fixpoint] ;
}
Translation(tx, ty) ;
X_Shear( b ) ;
Translation(-tx, -ty) ;
Display() ;
break ;
case 10:
cleardevice() ;
outtextxy(midx-20, 100,”Enter Y_Shear Factor”);
float a;
cin>> a;
setcolor(12) ;
outtextxy (midx – 20 , 130, “Please Enter the Number of Fix
Point”) ;
cin>> fixpoint ;
if ((fixpoint > n)||(fixpoint <=0))
{
outtextxy (midx – 20 , 180, “Error.. out of Range, the default
fixed point (1), will be used “ ) ;
tx = - x[1] ;
ty = - [1] ;
}
else
{
tx = - x[fixpoint] ;

181
‫اساسيات الرسم بالحاسوب‬

ty = - [fixpoint] ;
}
Translation(tx, ty) ;
Y_Shear( b ) ;
Translation(-tx, -ty) ;
Display() ;
break ;
case 11:
exit(0) ;
default:
outtextxy (midx – 20 , 60, “Error.. out of Range, Please be
Sure“ ) ;
}
}
while ((k<11) && (k>0) ;
closegraph();
}

182
‫اساسيات الرسم بالحاسوب‬

‫الفصل الخامس‬
‫تحويع ابشكال ثعثية اببعاد‬
‫‪3D TRANSFORMATION‬‬

‫‪ 5.1‬المقدمة‬
‫افرض او لديك لديع يعيش ولى سطح القمر‪ ,‬ويرغ او يرسل لك دية بمناسبة‬
‫ويد ميعدكج اتصل بك وسألك و مكاو اوامتك ولى ابرضج المشكلة الوحيدب و‬
‫او نظال البريد في القمر ب يفهل العناوي المكتوبة باي لغة‪ ،‬لكنه يفهل فقط‬
‫ابحداثيا الروميةج وليه‪ ،‬كيف يمكنك م ارسال مووعك ولى ابرض؟‬
‫ا يأتي مفهول اببعادج اببعاد تعرف الحد ابدنى م النقاط المطلوبة لإلشارب‬ ‫م‬
‫الى مووع اي كياو ضم الفضا ج‬
‫دونا نعود الى ملالنا وال ي م المفروض او ترسل مووعك ولى ابرض الى‬
‫لديقك ولى القمرج سترسل له ثعث م ابحداثيا ج ابول يدوى الطول‪ ،‬اللاني‬
‫يدوى العرض‪ ،‬ويسمى اللالث ابرتفاعج‬
‫ابحداثيا اللعث ه تحدد مووعك ولى ابرضج ابثناو ابولى تحدد مووعك‪،‬‬
‫واللالث يحدد ارتفاوك فوق مستوى سطح البحرج‬
‫ل ا‪ ،‬انك تحتاج فقط الى ثعث احداثيا لتحديد مووعك ولى ابرضج و ا يعني انك‬
‫تعيش في والل ثعثي اببعاد‪ ،‬وبالتالي فاو ا ب يجي فقط و التساؤل حول‬
‫اببعاد‪ ،‬ولك ايضا يجي و المبرر في التساؤل لماذا نح نعيش في والل ثعثي‬
‫اببعادج‬
‫وحيث اننا ندرس ا المفهول باإلشارب الى معالجة الصور الرومية‪ ،‬ل لك فأننا ابو‬
‫نتوبه الى ربط مفهول اببعاد مع الصورج‬

‫‪183‬‬
‫اساسيات الرسم بالحاسوب‬

‫ابعاد الصورة‬ ‫‪5.2‬‬


‫إذا وشنا في والل ثعثي اببعاد‪ ،‬فما ي ابعاد الصورب التي يتل التقاطهاج الصورب‬
‫ي ثنائية اببعاد و ا و السب اننا نعرف الصورب ولى انها اشارب ثنائية اببعادج‬
‫اي لورب لها ارتفاع وورض فقطج اي لورب ليس لها ومعج انظر الى الصورب‬
‫في الشكل ‪5.1‬ج‬

‫شكل ‪ :5.1‬محاور ثنائية للصوربج‬


‫إذا نظرنا الى الشكل ‪ ،5.1‬فهي تظهر انها تحتوي ولى اثناو م ابحداثيا والتي‬
‫ه‬ ‫ي محور ابرتفاع ومحور العرضج انت غير وادر ولى إدراك العمع م‬
‫الصورب‪ ،‬و ا ال ي يدوونا للقول او الصورب ي اشارب ثنائية اببعادج ولك اويننا‬
‫لها القدرب ولى إدراك الكيانا ثعثية اببعاد‪ ،‬ا النقاش يقودنا الى بعض ابسئلة‬
‫التي تتعلع بكيفية تكوي لورب ثعثية اببعاد م بعدي ج‬

‫الرسوم ثالثية االبعاد‬ ‫‪5.3‬‬


‫ي حقل م رسول الحاسبة وال ي يتعامل مع توليد وورض الكيانا ثعثية اببعاد‬
‫في فضا ثنائي اببعاد ملل شاشة الحاسوب ‪ ،‬فضع و اللوو وشدب ابضا ب‪،‬‬
‫ونصر الصورب ثعثية اببعاد يضيف لفة العمع والتي توضح اي تقع النقطة في‬
‫محور ‪ z‬الاياليج‬

‫‪184‬‬
‫اساسيات الرسم بالحاسوب‬

‫وندما تدمج مجمووة ونالر الصورب ثعثية اببعاد‪ ،‬كل واحدب مع ويمة ومقها‪،‬‬
‫فاو الناتج و سطح ثعثي اببعاد يدوى نسيج ‪texture‬ج‬
‫الكيانا تالع في مرحلة او وضع ثعثي اببعاد بحيث او المنظر الحالي يشتع م‬
‫الكاميرا ومصدر الضو بطريقة مشابهة للعالل الحقيقيج‬

‫‪ 5.3.1‬من العالم الثالثي الى الموديل ‪From a 3D World to a Model‬‬


‫وبل او يتل رسل اي شي ولى شاشة الحاسوب‪ ،‬فاو العالل اللعثي اببعاد‬
‫ابفتراضي للكيانا يج او يعرف ويازو في الحاسوبج نفس المبدأ يطبع حتى‬
‫في العالل ثنائي اببعاد ابفتراضيج الكيانا الهندسية ملل المستطيل‪ ،‬الدوائر او‬
‫متعدد ابضعع يج او يحدد وبل او يتل رسمهج العالل ثعثي اببعاد ابفتراضي م‬
‫الممك او يحتوي أكلر بكلير مما يعرض ولى شاشة الحاسوب في لحظة ماج العالل‬
‫ابفتراضي م الممك او يتكوو م بناية او حتى مدينة وربما مشهد كبير بدا‪،‬‬
‫ا العالل ابفتراضي‪ ،‬ربما في حالة‬ ‫لك الناظر سوف يرى فقط بز لغير م‬
‫معينة غرفة م بنايةج طبعا‪ ،‬الناظر م الممك او يتحرك قعل العالل ابفتراضي‬
‫ويستوضحهج ولك ب يمكنه ابدا او يرى بميع العالل ابفتراضي بصورب كتلة‬
‫واحدبج‬
‫الاطوب ابولى تتكوو م نم بة كيانا العالل ابفتراضيج ولف كياو ثعثي‬
‫اببعاد يج او يحتوي ولى معلوما و ندسة الكياو ولك ايضا لفا‬
‫سطحهج ما و لوو الكياو؟ ل سطحه براق ال داك ؟‬
‫الكيانا في العالل الحقيقي ي ثعثية اببعاد‪ ،‬لكل كياو طول وورض وارتفاعج‬

‫‪ 5.3.2‬نظام االحداثيات‬
‫نظال اببعاد اللعثي ينظر له ولى انه توسيع لنظال اببعاد اللنائيج او البعد اللالث‬
‫وال ي يملل العمع م الممك تمليله بالمحور ‪ Z‬وال ي و ومودي ويكوو زوايا‬
‫وائمة ولى المستوى )‪(x, y‬ج‬

‫‪185‬‬
‫اساسيات الرسم بالحاسوب‬

‫ل لك‪ ،‬فاو اي نقطة بالتمليل اللعثي يتل ولفها بلعث ابعاد )‪ (x, y, z‬م ويل‬
‫ابحداثيا ج ه ابحداثيا م الممك ضبطها اي تحديد اتجا ها وفقا لنظامي ج‬
‫النظال ابول و نظال اليد اليسرى يسمح لنا لضبط اليد اليسرى الابع اليد‬
‫اليسرى مع المحاور بحيث يكوو اببهال منطبع ولى المحور ‪ x‬والسبابة تكوو‬
‫منطبقة ولى المحور ‪ y‬بينما الوسطى تنطبع ولى المحور ‪ z‬كما في الشكل ‪5.2‬ج‬

‫شكل ‪ :5.2‬نظال احداثيا اليد اليمنى واليد اليسرىج‬

‫اما النظال اللاني فهو نظال اليد اليمنى حيث يسمح لنا لضبط اليد اليمنى الابع اليد‬
‫اليمنى ولى المحاور بحيث يكوو اببهال منطبع ولى المحور ‪ x‬والسبابة تكوو‬
‫منطبقة ولى المحور ‪ y‬بينما الوسطى تنطبع ولى المحور ‪ z‬كما في الشكل ‪5.2‬ج‬
‫واضح او الفرق و باتجاه المحور ‪ ،z‬حيث مرب يكوو الجان الموب منه و‬
‫باتجا نا ومرب اقرى يكوو بابتجاه البعيد ونا كما في الشكل ‪5.3‬ج‬

‫‪186‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :5.3‬نظال احداثيا ثعثي اببعاد نظال اليد اليمنى واليسرى ج‬

‫ه و وشوائي‪ ،‬لك ينبغي للمر او يكوو ولى بينة‬ ‫ابقتيار بي نظال ابحداثيا‬
‫م النظال المستادل م وبل حقائ الرسوما الحاسوبية التجاريةج او المشكلة‬
‫الرئيسة التي تبرز وند اسقاط النقاط اللعثية اببعاد ولى مستوى ثنائي اببعاد‪،‬‬
‫وال ي بشكل وال له نظال محاور اليد اليسرىج ا سوف يكوو واضح وندما ننظر‬
‫الى مساوط المنظورج‬
‫وند نم بة وورض مشهد ثعثي اببعاد‪ ،‬فاو ناك ودد اكلر م ابوتبارا يج‬
‫او تأق بالحسباو بجان ويل ابحداثيا للبعد اللالثج حدود الكياو م الممك ينشا‬

‫‪187‬‬
‫اساسيات الرسم بالحاسوب‬

‫باستادال اتحادا ماتلفة لمستوى وسطوح منحنية‪ ،‬وفي بعض ابحياو نحتاج الى‬
‫تحديد المعلوما التي تتعلع بداقل الكياوج‬

‫التحويالت ‪Transformation‬‬ ‫‪5.4‬‬


‫ب تاتلف التحويع في النظال ثعثي اببعاد كليرا و تلك في النظال ثنائي اببعاد‪،‬‬
‫ويربى المعحظة باننا اقتصارا سنستادل المصفوفا المتجانسة نا مباشرب حيث‬
‫ب يستوب تكرار ا ميتها وكيفية تمليلها والتي سبع واو تل شرحها في فصل‬
‫التحويع اللنائية‪ ،‬مع ابق بنظر ابوتبار باو المصفوفة المتجانسة في النظال‬
‫اللنائي كانت وبارب و مصفوفة )‪ (3×3‬اما وند استادال النظال ثعثي اببعاد‬
‫ونظرا لزيادب اببعاد م بعدي الى ثعث ل لك فاو المصفوفة المتجانسة ايضا تزاد‬
‫بمقدار ومود ولف اضافي لتكوو مصفوفة )‪(4×4‬ج‬

‫‪ 5.4.1‬النقل ‪Translation‬‬
‫وملية النقل بالنظال اللعثي مشابه لعملية النقل بالنظال اللنائي ماودا او النظال‬
‫اللعثي يحتوي ولى بعد اضافي ول لك يج او تتضم وملية النقل ا البعد‬
‫ابضافي وسيكوو‬
‫‪x’ = x + tx‬‬
‫‪y’ = y + ty‬‬
‫‪z’ = z + tz‬‬

‫حيث او )‪ (tx, ty, tz‬تملل معامع النقل المسافة او ابزاحة التي ينقل بمقدار ا‬
‫الكياو بابتجا ا )‪ (x, y, z‬ولى التواليج اذا كانت ويمة ‪ tx‬موببة فالجسل‬
‫سيتحرك باتجاه اليمي اما اذا كانت ويمة ‪ tx‬سالبة فالجسل يتحرك باتجاه اليسارج‬
‫ك لك‪ ،‬اذا كانت ويمة ‪ ty‬موببة فاو الجسل سيتحرك لألسفل نقطة ابلل في‬
‫الزاوية العليا اليسرى ‪ ،‬اما اذا كانت ويمة ‪ ty‬سالبه فاو الجسل سيتحرك نحو‬
‫‪188‬‬
‫اساسيات الرسم بالحاسوب‬

‫ابولىج واقيرا اذا كانت ويمة ‪ tz‬موببة فاو الجسل سيتحرك باتجاه الشاشة وند‬
‫استادال نظال احداثيا اليد اليمنى ‪ ،‬اما اذا كانت ويمة ‪ tz‬سالبة فاو الجسل يتحرك‬
‫باتجاه العمع بعيدا و الشاشةج‬
‫اذا رغبنا تمليل ذلك ولى شكل مصفوفة متجانسة فيكوو‬

‫‪ 5.4.2‬التحجيم ‪Scaling‬‬
‫التحجيل في النظال اللعثي يج او يشمل البعد اللالث‪ ،‬وبالتالي م الممك او نطبع‬
‫نفس معادب التحجيل في النظال اللنائي مع اضافة البعد اللالث لها كما يلي‬
‫‪x’ = x . Sx‬‬
‫‪y’ = y . Sy‬‬
‫‪z’ = z . Sz‬‬

‫حيث او )‪ (Sx, Sy, Sz‬تملل معامع التحجيل تكبير او تصغير بابتجا ا‬


‫اللعث )‪ (x, y, z‬ولى التواليج معامل التحجيل ‪ Sx‬سيعمل ولى تغير بعد الجسل‬
‫باتجاه المحور ‪ ،x‬بينما ‪ Sy‬سيغير بعد الجسل باتجاه المحور ‪ ،y‬واقيرا فاو ‪Sz‬‬
‫يعمل ولى تغيير البعد باتجاه المحور ‪z‬ج‬
‫بحظ او معامل التحجيل )‪ (S‬تكوو ويمته موببة دائما واكبر م لفر )‪،( S > 0‬‬
‫فاذا كانت ويمة معامل التحجيل اكبر م واحد )‪ (S > 1‬فاو ذلك يعني او الجسل‬
‫سيتل تكبيره باتجاه المحور المحدد‪ ،‬اما اذا كاو معامل التحجيل الغر م واحد‬
‫واكبر م لفر)‪ ( 0 < S <1‬فاو ذلك يعني تصغير الجسل باتجاه المحور المحددج‬
‫ك لك م الممك تضمي المصفوفة المتجانسة معامل تحجيل البعد اللالث وستكوو‬
‫كما يلي‬

‫‪189‬‬
‫اساسيات الرسم بالحاسوب‬

‫وكل ما ويل و التحجيل في النظال اللنائي ينطبع ولى التحجيل في النظال اللعثيج‬

‫مالحظة‪ :‬في كل ومليا التحجيل يج نقل الجسل الى نقطة ابلل‪ ،‬القيال بعملية‬
‫التحجيل‪ ،‬ثل اوادته الى مووعه ابلليج لكي يكوو وملك منظل وسهل وليك او‬
‫تحدد احدى نقاط الجسل ولى انها نقطة ثابتة‪ ،‬ويتل نقل كل نقاط الجسل بموببها‪ ،‬اي‬
‫او ه النقطة ستكوو في نقطة ابلل‪ ،‬فاذا كانت احداثيا النقطة التي يتل‬
‫اقتيار ا لتكوو ثابتة ي )‪ (5, 8, -2‬ملع‪ ،‬وليه فاو معامل النقل )‪(tx, ty, tz‬‬
‫لجميع نقاط الجسل سيكوو )‪ (-5, -8, 2‬وبعد ابرا وملية التحجيل فيتل اوادب الجسل‬
‫الى مووعه وسيكوو معامل النقل العكسي مساوي الى )‪(5, 8, -2‬ج‬

‫‪ 5.4.3‬التدوير ‪Rotation‬‬
‫وملية التدوير في النظال اللعثي اببعاد ياتلف وليع و التدوير في النظال اللنائي‪،‬‬
‫حيث م الممك في النظال اللعثي او نقول بعملية التدوير بأربع طرق و ي‪:‬‬

‫التدوير حول المحور ‪x‬‬ ‫‪‬‬


‫التدوير حول المحور ‪y‬‬ ‫‪‬‬
‫التدوير حول المحور ‪z‬‬ ‫‪‬‬
‫التدوير حول محور وشوائي‬ ‫‪‬‬

‫‪190‬‬
‫اساسيات الرسم بالحاسوب‬

‫مالحظة ‪ :‬في كل ومليا التدوير يج او يتل نقل الجسل الى نقطة ابلل وسبع‬
‫وبينا او احدى نقاط الجسل ي التي تنقل وباوي النقاط تنقل بموببها وبعد النقل تتل‬
‫وملية التدوير ثل النقل المعاكس الى مووعه ابلليج‬

‫مالحظة ‪ :‬التدوير حول اي محور م الممك او يكوو باتجا ي واحد باتجاه دوراو‬
‫وقارب الساوة واللاني باتجاه معاكس لدوراو وقارب الساوةج‬

‫شكل ‪ :5.4‬المحاور التي يتل التدوير حولهاج‬

‫‪ ‬التدوير حول المحور ‪z‬‬


‫وباتجاه معاكس لدوراو‬ ‫او معادب التدوير حول المحور ‪ z‬بزاوية مقدار ا‬
‫وقارب الساوة ي‬

‫‪x’ = x . cos - y . sin‬‬


‫‪y’ = x . sin + y . cos‬‬
‫‪z’ = z‬‬

‫‪191‬‬
‫اساسيات الرسم بالحاسوب‬

‫ه المعادب م الممك اوادب تمليلها ولى شكل مصفوفة متجانسة كما يلي‬
‫التدوير باتجاه معاكس لدوراو وقارب الساوة‬

‫اما اذا كاو التدوير باتجاه دوراو وقارب الساوة فاو مصفوفة التدوير ي‬

‫‪ ‬التدوير حول المحور ‪y‬‬


‫يجمل بالععوا التاليةج‬ ‫او معادب التدوير حول المحور ‪ y‬بزاوية مقدار ا‬

‫‪x’ = x . cos - z . sin‬‬


‫‪z’ = x . sin + z . cos‬‬
‫‪y’ = y‬‬
‫‪192‬‬
‫اساسيات الرسم بالحاسوب‬

‫ه المعادب م الممك اوادب تمليلها ولى شكل مصفوفة متجانسة كما يلي‬
‫الدوراو باتجاه معاكس لدوراو وقارب الساوة‬

‫اما اذا كاو التدوير باتجاه دوراو وقارب الساوة فاو مصفوفة التدوير ي‬

‫‪ ‬التدوير حول المحور ‪x‬‬


‫تتملل بالمعادب التاليةج‬ ‫او معادب التدوير حول المحور ‪ x‬بزاوية مقدار ا‬

‫‪y’ = y . cos - z . sin‬‬


‫‪z’ = y . sin + z . cos‬‬
‫‪x’ = x‬‬

‫‪193‬‬
‫اساسيات الرسم بالحاسوب‬

‫ه المعادب م الممك اوادب تمليلها ولى شكل مصفوفة متجانسة كما يلي‬
‫الدوراو باتجاه معاكس لدوراو وقارب الساوة‬

‫اما اذا كاو التدوير باتجاه دوراو وقارب الساوة فاو مصفوفة التدوير ي‬

‫مالحظة‪ :‬يتم التعامل مع الدوران في االشكال الثالثية االبعاد بصورة مختلفة‪ ،‬حيث‬
‫إنه من الضروري تحديد محور الدوران‪ ،‬ومن الضروري أيضاً االهتمام باتجاه‬
‫الدو ارن‪ .‬والمعادالت أعاله تتبع قاعدة نظام محاور اليد اليسرى‪ ،‬مما يعنى أن‬
‫محور ‪ y‬الموجب يكون رأسيا‪ ،‬ومحور ‪ x‬الموجب على اليمين و محور ‪ z‬الموجب‬
‫إلى داخل الصفحة او الشاشة‪ ،‬و في هذه الحالة يكون الدوران مع اتجاه دوران‬
‫عقارب الساعة عندما ينظر إليه من الناحية الموجبة للمحاور والعكس صحيح بأن‬
‫الدوران يكون عكس دوران عقارب الساعة إن نظر إليه من الناحية السالبة‬

‫‪194‬‬
‫اساسيات الرسم بالحاسوب‬

‫للمحاور(أي ان عمليات التدوير اعاله هي جميعا حول جوانب المحاور الموجبة‬


‫وستكون معكوسة اذا كانت في الجانب السلبي للمحور)‪.‬‬
‫‪ ‬التدوير حول محور عشوائي ‪Rotation about an arbitrary‬‬
‫‪axis‬‬
‫في ا النوع م التدوير فأننا سندور اي بسل حول محور يرسل في الفضا ياتلف‬
‫و المحاور اللعث التي تل التطرق لها في ا الفصلج‬
‫وملية التدوير ه تحتاج الى توسع في الشرح ألنها ليست ب ا البساطة لعمليا‬
‫التدوير السابقة‪ ،‬و ناك ودد م الاطوا الواب اتباوها لكي يتل انجاز وملية‬
‫التدويرج‬
‫بالنتيجة النهائية سنالص الى وعوا تعتبر وياسية ألبرا وملية التدوير حول‬
‫محور وشوائي‪ ،‬ول لك ولى القارئ تتبع قطوا التدوير لحي الولول الى‬
‫القاودب العامة لعملية التدوير حول المحور العشوائيج‬

‫تتطل وملية التدوير العشوائي ما يلي‪:‬‬

‫اوب يج او ينقل المحور العشوائي الى نقطة ابلل ونكرر وندما نقول‬ ‫‪1‬ج‬
‫نقل محور او بسل ا يعني نقل احدى نقاط ا الجسل الى نقطة ابلل‪،‬‬
‫وتنقل كل النقاط ابقرى للكياو او المحور بموب معامع النقل ه ج‬
‫اذو نح نحتاج او يمر المحور قعل نقطة ابللج‬
‫ابرا ومليا تدوير المحور بحيث او محور التدوير ينطبع ولى احد‬ ‫‪2‬ج‬
‫المحاور اللعثج‬
‫ابرا وملية تدوير الجسل حول المحور ال ي تل اقتياره وبالزاوية وابتجاه‬ ‫‪3‬ج‬
‫التي تل تحديد ا مسبقاج‬
‫العمل ولى التدوير العكسي بحيث يتل اوادب محور التدوير الى تنظيمه او‬ ‫‪4‬ج‬
‫وضعه ابللي وكس العمليا التي ابريت في الفقرب ‪ 2‬ج‬

‫‪195‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪5‬ج ابرا وملية النقل العكسي ليكوو المحور في وضعه ابللي وكس‬
‫معامع النقل في الفقرب ‪ 1‬ج‬
‫مالحظة ‪ :‬كل العمليا السابقة والتي تل تطبيقها ولى محور التدوير تطبع ولى‬
‫الجسل او الكياو ال ي نرغ تدويره حول ا المحورج‬
‫ربما وندما تقرا الفقرا السابقة ستصاب بايبة امل بو ابمور تعقد اكلر‪ ،‬ولك‬
‫ب تتعجل سنعمل ولى تسهيل وتبسيط ه التعقيدا ج‬
‫لكي ننجز وملية التدوير العشوائي بشكل سلسل‪ ،‬سنحاول ايجاد وعوة بسيطة م‬
‫الممك تطبيقها مباشرب ولى اي وملية تدوير حول محور وشوائي‪ ،‬في الشكل ‪5.5‬‬
‫يعحظ او الكياو مطلوب تدويره حول المحور )‪ (P0 P‬بزاوية مقدار ا )‪ (α‬باتجاه‬
‫دوراو وقارب الساوةج‬

‫شكل ‪ :5.5‬يوضح بسل كياو مطلوب تدويره حول محور في الفضا ج‬

‫‪196‬‬
‫اساسيات الرسم بالحاسوب‬

‫ل لك سنبدأ بابشتقاق دوو ابلتفا الى الكياو وبعد او نحصل ولى الععوة العامة‬
‫نضرب احداثيا بميع نقاط الكياو بالععوة التي توللنا لها ليحدث التدوير‬
‫المطلوبج‬

‫الشتقاق عالقة عامة عليك اتباع الخطوات التالية‪:‬‬

‫‪1‬ج نقل محور التدوير الى نقطة ابلل ستكوو النقطة ‪ P0‬و ي احدى نقاط‬
‫المحور ي النقطة الماتارب لتكوو في نقطة ابلل نفترض او احداثياتها‬
‫ي )‪ , (x, y, z‬بحظ الشكل ‪5.6‬ج يربى معحظة او النقطة ‪ P‬لها‬
‫ابحداثيا )‪ (A, B, C‬الشكل ‪5.6‬ج‬

‫شكل ‪ :5.6‬سح المتجه ليمر بنقطة ابللج‬

‫‪197‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪2‬ج ابو حاول تدوير المحور المتجه ) ( بحيث ينطبع ولى المستوى )‪(xz‬‬
‫تمهيدا بو ينطبع المحور العشوائي ولى المحور ‪ ، z‬ل لك سيكوو‬
‫التدوير حول المحور )‪ ،(x‬وملية التدوير ه تحتاج الى تحديد الزاوية‬
‫التي يج او تدور بهاج تحديد الزاوية ليست وملية يسيرب نظرا لعدل توفر‬
‫معلوما كافية‪ ،‬وليه نستادل طريقة افتراضية تساود ولى الولول الى‬
‫الهدف المطلوب وذلك باو تفترض انك تسلط ضو ولى محور التدوير‬
‫) ( وبالتالي فاو ا الضو سيولد ظل للمحور ولى المستوى )‪ ،(yz‬ا‬
‫الظل و وبارب و قط مشابه للمحور وبما انه موبود ولى المستوى‬
‫)‪ (yz‬فانه سيولد زاوية مقدار ا ( مع المحور )‪(z‬ج او ابعاد النقطة )‪(P‬‬
‫ستبقى محافظة ولى ويمها بالنسبة لألبعاد )‪ (y, z‬بينما ستكوو ويمتها في‬
‫البعد )‪ (x‬مساوية الى الصفر بو المحور منطبع ولى المستوى )‪(yz‬ج‬
‫انظر الشكل ‪5.7‬ج‬

‫شكل ‪ :5.7‬طريقة افتراضية لحساب زاوية التدوير للمتجه ) ( لكي ينطبع ولى‬
‫المستوى )‪(xz‬ج‬

‫‪198‬‬
‫اساسيات الرسم بالحاسوب‬

‫التدوير حول المحور )‪ (x‬باتجاه معاكس لدوراو وقارب الساوة يتل‬


‫باستادال مصفوفة التدوير التالية‪:‬‬

‫ويل بي وبي تمال الزاوية يمك حسابها بابستعانة بأضعع المللث‬


‫القائل الزاوية ال ي فيه الزاوية المقابل والمجاور للزاوية مع الوتر ج‬

‫=‪K‬‬
‫‪sin = B / K‬‬
‫‪cos = C / K‬‬

‫لنعوض و ويل الجي وبي تمال في مصفوفة التدوير حول المحور )‪(x‬‬

‫‪3‬ج بعد انجاز الاطوب اللانية فاو محور التدوير العشوائي سيكوو منطبع ولى‬
‫المستوى )‪ (xz‬كما في الشكل ‪5.8‬ج‬

‫‪199‬‬
‫اساسيات الرسم بالحاسوب‬

‫او محور التدوير )‪ (L‬ال ي انطبع ولى المستوى )‪ (xz‬م الممك حساب‬
‫طوله باستادال نظرية فيلاغورس وحس ابطوال الواضحة في الشكل‬
‫‪5.8‬ج بحظ او ظل المحور )‪ ( K‬ايضا تل تدويره مع تدوير المحور‬
‫العشوائي‪ ،‬بعد التدوير سينطبع الظل ولى المحور ‪ ،z‬بنفس طوله ال ي تل‬
‫حسابه في الاطوب السابقةج‬
‫محور التدوير العشوائي ال ي انطبع ولى المستوى )‪ (xz‬سيولد زاوية‬
‫مقدار ا ‪ β‬مع المحور ‪z‬ج‬

‫شكل ‪ :5.8‬محور التدوير بعد انطباوه ولى المستوى )‪(xz‬‬

‫ابو حانت لحظة تدوير المحور العشوائي حول المحور )‪ (y‬لينطبع ولى‬
‫المحور )‪ (z‬سبع ووضحنا باو غاية وملنا و او ينطبع المحور العشوائي ولى‬
‫احد المحاور اللعث وم ثل التدوير حس الزاوية المطلوبة ج التدوير سيكوو‬
‫بزاوية ‪ β‬وباتجاه دوراو وقارب الساوةج مصفوفة التدوير ي‪:‬‬
‫‪200‬‬
‫اساسيات الرسم بالحاسوب‬

‫بنفس الطريقة التي استادمت سابقا في الاطوب اللانية‪ ،‬نحاول او نحس ويل الجي‬
‫وبي تمال للزاوية ‪ β‬بابستعانة بأضعع المللث القائل الزاوية ال ي يحتوي ولى‬
‫الزاوية ‪β‬ج‬
‫=‪L‬‬
‫‪K2 = B2 + C2‬‬
‫‪Then,‬‬ ‫=‪L‬‬
‫‪sin β = A / L‬‬
‫‪cos β = K / L‬‬

‫‪4‬ج الاطوب الحاسمة ي تدوير الجسل حول المحور )‪ (z‬وال ي و ايضا‬


‫باتجاه دوراو وقارب‬ ‫محور التدوير العشوائي بزاوية مقدار ا‬
‫الساوة نظال اليد اليسرى ج مصفوفة التدوير ي‬

‫‪201‬‬
‫اساسيات الرسم بالحاسوب‬

‫ابو تل تدوير الكياو حول المحور العشوائي باتباع ومليا تحويل متعددب و ي‬
‫‪R ( ) = T . Rx . Ry . Rz‬‬
‫ه العمليا بالرغل م انها تدور الكياو حول محور وشوائي اب انها نقلته‬ ‫لك‬
‫الى نقطة ابلل‪ ،‬ل لك ببد م اوادب الكياو الى مووعه ابللي و ا يتل بعكس‬
‫العمليا التي ابريت سابقا وكما يلي‪:‬‬

‫‪R ( ) = T . Rx . Ry . Rz . R-1y . R-1x . T-1‬‬


‫حيث او‬
‫)‪ (R-1‬تملل التدوير باتجاه معاكس سيكوو التدوير باتجاه معاكس بتجاه دوراو‬
‫وقارب الساوة‬

‫مما سبع البح لدينا مجمووة م التحويع اذا ما تل اتباوها فسيكوو م الممك‬
‫التدوير حول محور وشوائي مع العلل باننا سنستادل احداثيا اثناو م النقاط التي‬
‫‪202‬‬
‫اساسيات الرسم بالحاسوب‬

‫العزمة‬ ‫ولى محور التدوير إلنجاز بميع العمليا التحويليةج ادناه المصفوفا‬
‫لعمليا التحويل او التدوير حول محور وشوائيج‬

‫مع ابق بنظر ابوتبار او‬

‫=‪L‬‬

‫=‪K‬‬

‫‪203‬‬
‫اساسيات الرسم بالحاسوب‬

‫)‪ (A, B, C‬ي احدى النقاط التي تقع ولى المحور العشوائيج‬
‫)‪ (x, y, z‬ي نقطة ثانية ولى المحور العشوائيج‬

‫‪ 5.4.4‬سحب الشكل ثالثي االبعاد‬


‫كما وملنا في ابشكال اللنائية اببعاد‪ ،‬فاو مدقل اضافي ب يساوي لفر في مواوع‬
‫المصفوفة التي ي ليست في القطر الرئيس ستؤدي الى تحويع السح ‪ ،‬والتي‬
‫م الممك او تكوو مفيدب في نم بة كيانا ماتلفةج ببرا وملية السح باتجاه‬
‫المحور )‪ (x‬فأننا سنضيف مدقل اضافي في العمود ال ي يملل المحور )‪ (x‬ليؤدي‬
‫بالنتيجة الى وملية سح الكياو باتجاه المحور )‪ (x‬وكما في المصفوفة التالية‬

‫باتجاه‬ ‫ه المصفوفة لتنتج وملية السح‬ ‫وليه فاو نقاط اي شكل ستضرب في‬
‫المحور )‪(x‬ج‬

‫بحظ نا او ويمة )‪ (x‬فقط تغير اما باوي القيل فلل تتغيرج‬


‫ولى سبيل الملال لو كاو لدينا شكل مكع ومطلوب سحبة باتجاه )‪ ،(x‬ولى‬
‫افتراض او المكع يستند ولى المستوي )‪ ،(yz‬في ه الحالة فاو اولى المكع‬
‫سيدفع بابتجاه المحدد بينما اسفل المكع القاودب ستبقى في مووعها كما في‬
‫الشكل ‪5.9‬ج‬

‫‪204‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ : 5.9‬شكل المكع بعد ابرا السح باتجاه المحور )‪(x‬ج‬

‫باتجاه‬ ‫باي اتجاه اقرج مصفوفة السح‬ ‫بنفس الطريقة م الممك ابرا السح‬
‫المحور )‪ (y‬ي‬

‫اما مصفوفة السح باتجاه المحور )‪ (z‬ي‬

‫مالحظة‪ :‬ويل المتغيرا )‪ (a, b, c‬م الممك او تكوو اي ويمة موببة او سالبة‬
‫اذا كانت سالبة ستؤدي الى السح بابتجاه المعاكس ج وك لك م الممك وضعها‬
‫في اي مكاو قارج القطر الرئيس مع معحظة محور السح ‪ ،‬فملع م الممك او‬
‫تكوو مصفوفة السح باتجاه المحور )‪ (x‬كما يلي‬

‫و ك ا لباوي المحاورج‬

‫‪205‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 4.4.5‬االنعكاس في النظام الثالثي االبعاد‬


‫اي مستوي يمر قعل نقطة ابلل م الممك او نفكر به ولى انه مرآب واكسة‬
‫للكيانا في المشهدج المصفوفا التي لها القيمة )‪ (-1‬والتي توضع في مكاو‬
‫مناس ضم ويل القطر الرئيس للمصفوفة ستؤدي الى ابنعكاس م قعل‬
‫المستويا ) )‪( (xy), (xz), (yz‬ج او وضع )‪ (-1‬ألحدى ويل القطر الرئيس‬
‫سيؤدي الى انعكاس قعل المستوي المتولد م المحاور ابقرى التي تحتوي ولى‬
‫)‪ (1‬كما في المصفوفة التاليةج‬

‫فملع اذا اقترنا او يكوو المستوي )‪ (xy‬مستوى ابنعكاس فاو ابنعكاس سيحول‬
‫النقطة )‪ (x, y, z‬الى النقطة )‪ (x, y,−z‬والمصفوفة التي تقول بعملية التحويل‬
‫ابنعكاس ه ي‬

‫مصفوفة ابنعكاس قعل المستوى )‪ (xz‬ي‬

‫اما مصفوفة ابنعكاس قعل المستوى )‪ (yz‬ي‬

‫‪206‬‬
‫اساسيات الرسم بالحاسوب‬

‫مالحظة‪ :‬م الممك ابرا انعكاس قعل محور وشوائي يمر بنقطة ابلل و ا‬
‫يعتمد ولى كيفية تدوير المحور العشوائي كما سبع وتل شرحه وم ثل ابرا‬
‫وملية ابنعكاسج‬

‫‪207‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪208‬‬
‫اساسيات الرسم بالحاسوب‬

‫الفصل السادس‬
‫االسقاط‬
‫‪PROJECTION‬‬

‫‪ 6.1‬المقدمة‬
‫كما و معلول فاو اي كياو في العالل الحقيقي يملل بلعث ابعاد ليكوو شكل مجسل‪،‬‬
‫وم الممك او نعرض ولى شاشة الحاسوب اي لورب لكياو م العالل الحقيقي‪،‬‬
‫ولما كانت شاشة الحاسوب ي ثنائية اببعاد‪ ،‬ل لك استوب ولينا او نحول‬
‫ابشكال اللعثية اببعاد الى اشكال ثنائية اببعاد لنتمك م ورضها ولى شاشة‬
‫الحاسوب او شاشة التلفزيوو و ك اج وملية تحويل ابشكال اللعثية اببعاد الى‬
‫ثنائية اببعاد تسمى ابسقاطج‬

‫‪ 6.2‬التعريف‬
‫ابسقاط و تحويل نقطة م فضا ودد ابعاده )‪ (n‬الى فضا ودد ابعاده )‪،(m‬‬
‫حيث او )‪(m < n‬ج الشائع و التحويل م ثعثي اببعاد الى ثنائي اببعاد وال ي‬
‫سنركز وليه في ا الفصلج‬

‫مالحظة‪ :‬كل بسل او كياو يتكوو م مجمووة م النقاط ل لك فاو تحويل نقطة‬
‫واحدب يعني اتباع نفس الطريقة لتحويل بميع النقاط التي يتكوو منها الكياوج فملع‬
‫المكع يتكوو م مجمووة م النقاط ثماو نقاط تربط بينها قطوط‪ ،‬ل لك فاو‬
‫وملية التحويل تتل بتحويل النقاط اوب‪ ،‬ثل يتل ربط ه النقاط باطوطج‬
‫في الفضا ثعثي اببعاد فأننا نحول نقطة م الفضا ثعثي اببعاد الى مستوى‬
‫ابسقاط ثنائي اببعاد ))‪ (projection plane (pp‬كما في الشكل ‪ 6.1‬باستادال‬
‫مساوط تنطلع م مركز ابسقاط ) )‪ ،(center of projection (COP‬حيث او‬
‫مركز ابسقاط م الممك او يكوو العي او ودسة الكامرا او غير اج‬

‫‪209‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :6.1‬وملية ابسقاط م ثعثي اببعاد الى ثنائي اببعادج‬

‫‪ 6.3‬نقاط التالشي ‪Vanish points‬‬


‫في ابسقاط المنظوري‪ ،‬فاو اي مجمووة م الاطوط المتوازية والتي ي‬
‫ب توازي مستوى ابسقاط تظهر وكانها سوف تلتقي في نقطة تسمى نقطة‬
‫التعشي كما في الشكل ‪6.2‬ج‬

‫شكل ‪ :6.2‬قطوط متوازية تبدو انها تلتقي في نقطة التعشي‬

‫‪210‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 6.4‬انواع المساقط‬
‫ناك نوواو رئيسياو م المساوط‪ ،‬ما المسقط المنظوري )‪(perspective‬‬
‫ه المساوط الرئيسية تتفرع مجمووة م‬ ‫والمسقط المتوازي )‪(parallel‬ج م‬
‫المساوط ابقرى الفروية كما ي موضحة في الشكل ‪6.3‬ج‬

‫شكل ‪ :6.3‬انواع المساوط الرئيسية واللانويةج‬

‫‪ 6.4.1‬االسقاط المتوازي ‪Parallel Projection‬‬


‫و ي المساوط التي تكوو فيها المسافة بي مستوى ابسقاط ومركز ابسقاط‬
‫بنهائية‪ ،‬اي او مركز ابسقاط موبود في ما بنهاية‪ ،‬بمعنى ب يوبد له مكاو‬
‫محدد‪ ،‬اي انها ب يوبد لها نقاط تعشي‪ ،‬بحظ الشكل ‪6.4‬ج‬

‫‪211‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :6.4‬شكل توضيحي لإلسقاط المتوازيج‬

‫ابسقاط المتوازي و تحويل المساحة ثعثية اببعاد الى مستوي ثنائي اببعاد ج في‬
‫ا ابسقاط‪ ،‬كل اشعاوا ابسقاط تكوو متوازيةج في المساوط المتوازية‪ ،‬فأننا‬
‫سنحدد اتجاه ابسقاط بدب م مركز ابسقاطج‬
‫وفقا بتجاه ابسقاط‪ ،‬م الممك ولف ابسقاط المتوازي وفقا الى ابنواع التالية‪:‬‬
‫‪1‬ج المساوط العمودية‪ :‬تكوو فيها قطوط ابسقاط ومودية ولى مستوى ابسقاطج‬
‫‪2‬ج المساوط المائلة‪ :‬مساوط بتكوو فيها قطوط ابسقاط ومودية ولى مستوى‬
‫ابسقاطج‬
‫في ك ع المس اوط العمودي ة والمس اوط المائل ة ف او قط وط متوازي ة افتراض ية‬
‫تن تج م الجس ل المص در ال ى مس توى ابس قاط و ي تقط ع مس توى ابس قاط‬
‫بزاوية محددب بنتاج لورب المسقطج‬
‫رياضيا‪ ،‬فاو ابسقاط المتوازي لنقط ة )‪ (x, y, z‬ول ى المس توى )‪ (xy‬تعط ي‬
‫)‪(x+az, y+bz, 0‬ج اللواب ت )‪ (a, b‬بمف رد ل يح ددوو المس قط المت وازيج‬
‫فعندما تكوو ويل )‪ (a=b=0‬فاو المس قط يق ال ون ه متعام دج با عف ذل ك تك وو‬
‫مائلةج اللوابت )‪ (a, b‬ل يس بالض رورب او تك وو ويمه ا او ل م واح د‪ ,‬ونتيج ة‬
‫ل لك فاو ابط وال المقاس ة ف ي المس قط المائ ل ربم ا تك وو اكب ر او ال غر مم ا‬
‫كانت ولي ه ف ي الفض ا ج ف ي المس قط المائ ل الع ال ف او الك را ف ي الفض ا ي تل‬
‫اسقاطها ول ى ش كل بيض وي ول ى مس توى ابس قاطج ول يس دائ رب كم ا و ف ي‬
‫المسقط المتعامدج‬

‫‪212‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬ابسقاط المتعامد ‪Orthographic projection‬‬


‫حيث سيكوو اتجاه ابسقاط ومودي ولى مستوى ابسقاطج‬
‫ابسقاط المتوازي المتعامد ‪ Orthographic projection‬و ابكلر استاداما‪،‬‬
‫حيث او اشعاوا ابسقاط تكوو متعامدب مع مستوى ابسقاطج طريقة ابسقاط‬
‫المتعامد تهمل واحد م ابحداثيا ج‬
‫في ابسقاط المتعامد المتوازي يتل اسقاط الكياو الى احد المستويا ‪ ،‬ملع المستوى‬
‫‪ xy‬وفي ه الحالة يهمل ابحداثي ‪z‬ج بالنسبة للنقطة )‪ P (x, y, z‬تقابلها في‬
‫ابسقاط النقطة )‪P' (x, y‬ج المصفوفة التي تملل ا التحويل ي‬

‫في حالة ابسقاط الى المستوى ‪ xz‬يتل ا مال ابحداثي ‪ y‬للكياو المعطى ونحصل‬
‫ولى ارتفاع للكياو‪ ،‬وفي حالة ابسقاط ولى المستوى ‪ yz‬سيكوو ارتفاع بانبي‬
‫للكياوج‬
‫المساوط المتعامدب ي تجميع لرسول ثنائي ة اببع اد والت ي تعم ل مع ا بوط ا تملي ل‬
‫كامل حقيقي للكياوج ناك انواع م المساوط المتعامدب منها‪:‬‬

‫‪1‬ج متعدد المناظر ‪multi-view‬‬


‫المسقط المتعامد متعدد المناظر متعدد الوبوه ‪ multi-view‬و ليس مسقط واحد‬
‫لكن ه تجمي ع لمس اوطج ه المس اوط توض ح بص ورب واح دب‪ ،‬اثن او‪ ،‬او اكل ر م‬
‫المس اوط المتعام دب ول ى مس تويا ابس قاط الت ي تك وو متعام دب ول ى‬
‫محاورابحداثيا كما في الشكل ‪6.5‬ج نا فقط ستة مساوط مناظر متعامدب ماتلفة‬
‫ممكنهج‬

‫‪213‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :6.5‬مسقط متعدد المناظر‬

‫المسقط المتعامد متعدد المن اظر ل ه مي زب توض يح الش كل ال دويع بثن او او اكل ر م‬
‫اوبه الكياو‪ ،‬بينما في نف س الوو ت ي تع اني م ل عوبة تص ور او تاي ل الش كل‬
‫اللعث ي اببع اد للكي او م المن اظر المنفص لةج او و دد المن اظر المطلوب ة لول ف‬
‫اببعاد بش كل ك اف للكي او تعتم د ول ى تعقي دا ش كلهج الكي او المتن اظر البس يط م ع‬
‫اوبه مربعة م الممك ولفها باستادال اثناو او ثعث مناظر فقطج‬
‫لتوضيح الفكرب انظر الى الشكل اللعثي في الشكل ‪ 6.6‬وسنعمل ولى ايجاد المساوط‬
‫اللعث له المناظر اللعث ابولى الجانبي والجانبي ج‬

‫شكل ‪ :6.6‬شكل ثعثي اببعادج‬

‫‪214‬‬
‫اساسيات الرسم بالحاسوب‬

‫لو فرضنا اننا وضعنا الشكل اللعثي في لندوق زبابي مغلع له ستة اوب ه كم ا‬
‫في الشكل ‪6.7‬ج‬

‫شكل ‪ :6.7‬شكل ثعثي اببعاد موضوع في لندوق زبابيج‬

‫ابو لرس ل المنظ ر ابم امي ي دويا ‪ ،‬نتص ور امكاني ة م د قط وط ومودي ة م ك ل‬


‫نقط ة م نق اط الش كل اللعث ي اببع اد لتتق اطع م ع وب ه الص ندوق الزب ابي ال ي‬
‫يوابه الكامرا‪ ،‬بعد ا يتل ايصال ه النقاط م ع بعض ها بواس طة قط وط‪ ،‬وكم ا ف ي‬
‫الشكل ‪6.8‬ج‬

‫شكل ‪ :6.8‬رسل الوبه ابمامي للشكل اللعثي اببعادج‬

‫‪215‬‬
‫اساسيات الرسم بالحاسوب‬

‫اما المنظر ابولى فم الممك رسمه يدويا بنفس الطريقة وكما في الشكل ‪6.9‬ج‬

‫شكل ‪ :6.9‬رسل الوبه ابولىج‬

‫وتطبع نفس الطريقة لرسل الجان ابيم م الش كل اللعث ي ول ى وب ه الص ندوق‬
‫الزبابي وكما موضح في الشكل ‪6.10‬ج‬

‫شكل ‪ :6.10‬رسل وبه الشكل اللعثي للجان ابيم ج‬

‫‪216‬‬
‫اساسيات الرسم بالحاسوب‬

‫ابو لو تايلنا امكانية فتح اوبه المكع الزبابي ال ي رسمنا وليه ثعث اوبه م‬
‫الشكل اللعثي اببعاد بطريقة مد قط وط ومودي ة م ك ل نقط ة م الجس ل اللعث ي‬
‫الى سطح المكع الزبابي‪ ،‬سنحصل ولى الشكل ‪6.11‬ج‬

‫شكل ‪ :6.11‬الصندوق الزبابي بعد وتحةج‬


‫وبالتالي فاو المسقط متعدد المناظر سيكوو كما في الشكل ‪6.12‬ج‬

‫شكل ‪ :6.12‬المساوط اللعث لكياو ثعثي اببعاد>‬

‫‪2‬ج مساوط ‪Axonometric‬‬


‫ي مس اوط متعام دب ول ى مس توى ابس قاط‪ ،‬حي ث او ا المس توى ي تل اقتي اره‬
‫بطريقة توضح الشكل اللعثي اببعاد للكياو بش كل و الج بع ض المس اوط و ادب تمل ل‬
‫كياو بحيث او ابوبه اللعث المتجاورب تكوو مرئية‪ ،‬لك الش كل الحقيق ي والحج ل‬

‫‪217‬‬
‫اساسيات الرسم بالحاسوب‬

‫ه ابوب ه بتظه ر م ا ل ل يك الوب ه م وازي ال ى مس توى ابس قاطج ف ي‬ ‫بي م‬


‫مساوط ‪ axonometric‬فاو الاطوط المتوازية تقصر بقيل متساويةج وملي ا‪ ،‬مس اوط‬
‫‪ axonometric‬تنتج تقصير متجانس ولى طول محاور ابحداثيا ج‬
‫مساوط ‪ axonometric‬تصنف وفقا الى ترتي او تنظيل مستوى ابس قاط ومح اور‬
‫ابح داثيا اي الزواي ا ب ي مس توى ابس قاط ومح اور ابح داثيا ‪ ،‬كم ا ف ي‬
‫الش كل ‪6.13‬ج ف اذا كان ت ك ل الزواي ا ال لعث متس اوية ف او المس قط يس مى اح ادي‬
‫القياس ‪isometric‬ج اما اذا كانت اثن او م الزواي ا متس اوية ف او المس قط يس مى‬
‫ثنائي القياس ‪dimetric‬ج اما اذا كانت الزواي ا ماتلف ة القي اس ف او المس قط يس مى‬
‫ثعثي القياس ‪trimetric‬ج‬

‫شكل ‪ :6.13‬توضيح الزوايا بي مستوى ابسقاط ومحاور ابحداثيا ج‬

‫في بعض ابحياو وند بنا مسقط ‪ Axonometric‬فاو الكياو يكوو بشكل منحرف‬
‫اي او الوبه المطلوب ليكوو امال الكامرا يكوو منحرف بزاوية و الكامرا ل لك‬
‫يحتاج تدوير بزاوية معينة لجل الوبه المطلوب امال الكامرا ويكوو موابه‬
‫لمستوى ابسقاط ‪ ،‬بعد وملية التدوير يتل اسقاط الكياو ولى المستوى بشكل‬
‫متوازيج‬

‫‪218‬‬
‫اساسيات الرسم بالحاسوب‬

‫لنفرض او مستوى ابسقاط و المستوي ‪ xy‬ل لك فاو ابسقاط ينجز بح ف‬


‫المحور ‪ z‬لكل النقاط او ما يكافأ ذلك بضرب كل نقطة بعد تدوير ا بمصفوفة‬
‫ابسقاطج افرض اننا بداية ندور الكياو بزاوية مقدار ا ‪ φ‬حول المحور ‪ y‬وبعد ا‬
‫التدوير بزاوية مقدار ا ‪ θ‬حول المحور ‪x‬ج او دمج وملية التدوير ومصفوفة‬
‫ابسقاط تنتج الععوة التالية‬

‫‪ ‬مساقط ‪Isometric‬‬
‫ف ي مس اوط ‪ isometric‬بمي ع مح اور ابح داثيا ال لعث ي تل تقص ير ا بش كل‬
‫متس اوي‪ ،‬وتك وو الزواي ا ب ي مح اور ابس قاط متس اويةج للحص ول ول ى مس قط‬
‫‪ isometric‬فاو مستوى ابس قاط يج او يقط ع بمي ع مح اور ابح داثيا ال لعث‬
‫بزوايا متساويةج ه المساوط تظهر لورب كياو كما تبدو م اتجاه منح رف‪ ،‬و ي‬
‫تفيد بظهار اكلر م وبه واحد في نفس الصورب كما في الشكل ‪6.14‬ج‬

‫‪219‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :6.14‬اسقاط مكع بطريقة ‪isometric‬‬

‫‪Dimetric Projection ‬‬


‫في ا النوع م ابسقاط فاو فقط اثناو م المحاور اللعثة للفضا تظه ر متس اوية‬
‫مع وصر و الطول الحقيقي تاثير بصري بحيث يبدو الكياو او اببعاد اوص ر م‬
‫الحقيق ي وذل ك بس ب انحراف ه بزاوي ة باتج اه الن اظر ج او وي اس المح اور والزواي ا‬
‫المطلوب ة للع رض تحس وفق ا ال ى زاوي ة المش ا دبج وي اس البع د ابتج اه اللال ث‬
‫ومودي يحس بشكل منفصل كما في الشكل ‪6.15‬ج‬

‫شكل ‪ :6.15‬اسقاط مكع بطريقة ‪dimetric‬‬

‫‪220‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪Trimetric Projection ‬‬


‫في ا النوع م المساوط فاو المحاور اللعث للفضا تظهر غير متساوية مع‬
‫وصرج القياس لكل محور م المحاور اللعث والزوايا بينهل تحس بشكل منفصل‬
‫وفقا لما تمليه زوايا المشا دب‪ ،‬انظر الشكل ‪6.16‬ج‬

‫شكل ‪ :6.16‬اسقاط مكع بطريقة ‪trimetric‬‬

‫‪ ‬ابسقاط المائل )‪oblique (slant‬‬


‫نا اتجاه ابسقاط ليس ومودي ولى مستوى ابسقاطج‬
‫المسقط المائل و اح د ان واع المس اوط المتوازي ةج ت تل وملي ة اس قاط الص ورب وذل ك‬
‫بواسطة تقاطع ابشعاوا المتوازية م الكياو اللعثي اببعاد م ع مس توى ابس قاط‬
‫ليكوو مسقط الكياو يبدو ولى انه ثعثي اببعادج‬
‫واحدب م طرق الرسل باستادال منظر مائ ل و رس ل بان الكي او ال ي تنظ ر ل ه‬
‫برسل ثنائي اببعاد اي مستوي وبعد ا يتل رسل الجوان ابقرى بزاويةج‬

‫م الممك توضيح ابسقاط المتوازي المائل ‪oblique parallel projection‬‬


‫للنقطة )‪ (x, y, z‬الى المستوى ‪ xy‬كما يلي‬
‫)) ( ‪x' = x + z. (a. cos‬‬

‫‪221‬‬
‫اساسيات الرسم بالحاسوب‬

‫)) ( ‪y' = y + z. (a. sin‬‬

‫ي تملل‬ ‫حيث او المعامل ‪ a‬يحس او يحدد استطالة المحور ‪ z‬والزاوية‬


‫ابنحراف و المحور ‪x‬ج اذا كاو المعامل ‪ ،a = 0‬فهي حالة اسقاط متعامدج‬
‫ابسقاط المائل الى المستوى ‪ xy‬م الممك او يوضح بالمصفوفة التالية‬

‫ناك نوواو قالاو مفيداو م ابسقاط المائل‬


‫‪Cavalier projection ‬‬
‫اتجاه ابسقاط يعمل زاوية مقدار ا ‪ 45‬دربة مع مستوى ابسقاطج ب تقصر‬
‫الاطوط العمودية ولى مستوى ابسقاطج اسقاط قط ومودي الى مستوى المشا دب‬
‫له نفس الطول لنفس الاط في مساوط ‪Cavalier‬ج في ‪ Cavalier‬فاو بميع‬
‫الاطوط ترسل بنفس المقياس دوو او يكوو ناك تقصير في اطوال بعضهاج‬

‫لرسم جسم حسب المساقط المائلة عليك ان تتبع القواعد الثالث‬


‫‪ .1‬رسم الجانب المقابل للناظر او الكامرا كما هو وبنفس االبعاد‪.‬‬
‫‪ .2‬كل القياسات للخطوط الخلفية او التي تنطلق من الجانب االمامي وتذهب‬
‫للخلف تكون قياساتها بنصف قياسها الحقيقي‪.‬‬
‫‪ .3‬زاوية رسم الخطوط التي تنطلق للخلف تكون ‪ 45‬درجة‪.‬‬

‫انظر الشكل ‪6.17‬ج‬

‫‪222‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :6.17‬اسقاط ‪Cavalier‬‬

‫‪Cabinet projection ‬‬

‫مصطلح اس قاط ‪ Cabinet‬ال دوبب مش تع م اس تادامه للتوض يح ف ي ل ناوة‬


‫ابثاثج وكما في ‪ cavalier‬فاو واحد م اوبه الجسل المراد اسقاطه يكوو م وازي‬
‫لمستوى المنظور‪ ،‬والمحور اللالث يتل اسقاطه لينحرف بزاوية مق دار ا ‪ 63.4°‬وب‬
‫يشبه مس اوط ‪ cavalier‬ف ي المحافظ ةولى طول هج م ع مس قط ‪ Cabinet‬ف او ط ول‬
‫الاطوط الالفية تقطع الى النصف كما في الشكل ‪6.18‬ج‬
‫الععوة الرياضية وندما يكوو ابسقاط ولى المستوي )‪ (xy‬ي‬

‫‪223‬‬
‫اساسيات الرسم بالحاسوب‬

Cabinet ‫ ابسقاط بطريقة‬:6.18 ‫شكل‬

‫الكود البرمجي لعسقاط المتوازي نفرض او الكياو و شكل مكع‬

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<graphics.h>
void main()
{
int ch,x[10],y[10],z[10],a,b,c,j,xr[10],yr[10],zr[10];
int gd=DETECT,gm;
cout << “ Parallel Projection \n” ;
cout << “ Enter Coordinates \n “ ;
cout << “ else any other value would lead to default value \t:") ;
cin >> ch ;
if (ch==1)

224
‫اساسيات الرسم بالحاسوب‬

{
cout<< “\n follow these steps \n");
for(int i = 0; i < 8; i++)
{ cin >> x[i] ; cin >> y[i] ; cin >> z[i] ; }
}
else
{
x[0]=y[0]=z[0]=0;
x[1]=80;y[1]=z[1]=0;
x[2]=y[2]=80;z[2]=0;
x[3]=0;y[3]=80;z[3]=0;
x[4]=0;y[4]=z[4]=80;
x[5]=y[5]=0;z[5]=80;
x[6]=80;y[6]=0;z[6]=80;
x[7]=y[7]=z[7]=80;
cout << " default values have been set \n " ;
}
cout << “ now enter the projection vector \t" ;
cin >> a ; cin >> b ; cin >> c ;
for(int i=0;i<8;i++)
{
xr[i]=x[i]-(a*z[i]/c);
yr[i]=y[i]-(b*z[i]/c);
zr[i]=0;
}
initgraph(&gd,&gm," ");

225
‫اساسيات الرسم بالحاسوب‬

‫;)‪setcolor(CYAN‬‬
‫;)‪line(300,0,300,480‬‬
‫;)‪line(0,240,600,240‬‬
‫;)‪setcolor(YELLOW‬‬
‫;)‪for(i=0,j=i+1;i<8;i++, j=(j+1)/8‬‬
‫;)]‪line(xr[i]+300,240-yr[i],xr[j]+300,240-yr[i‬‬
‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫}‬

‫‪ 6.4.2‬المسقط المنظوري ‪Perspective‬‬


‫و ي المساوط التي تكوو فيها المسافة بي مستوى ابسقاط ومركز ابسقاط محددب‬
‫منتهية ‪ ,‬اي او مركز ابسقاط له نهاية محددبج المسقط المنظري و المسقط ال ي‬
‫له نقطة تعشي كما في الشكل ‪6.19‬ج‬

‫شكل ‪ :6.19‬شكل توضيحي لإلسقاط المنظوريج‬

‫يمتاز ابسقاط المنظوري بما يلي‬


‫‪226‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬انه مشابه للعالل الحقيقيج‬


‫‪ ‬يتصف بتقصير الكياو‪ ،‬اي تصوير أو ورض كائ يكوو أورب مما و‬
‫وليه أو أو يكوو أول ومعج‬
‫‪ ‬الكيانا تبدو اكبر اذا كانت وريبة م الكامراج‬
‫‪ ‬يحتاج الى‬
‫‪ ‬مركز ابسقاطج‬
‫‪ ‬مستوى ابسقاطج‬
‫‪ ‬وملية ابسقاط تتضم ربط الكياو الى مركز ابسقاطج‬
‫‪‬الاطوط المتوازية تظهر وكانها تتجمع بنقطة واحدبج‬

‫في العالل الحقيقي فاو الكيانا تظهر تقصير منظوري‪ ،‬مسافا الكياو تبدو الغرج‬
‫الحالة ابساسية تظهر بالشكل ‪6.20‬ج‬

‫شكل ‪ :6.20‬الكياو يبدو الغر للناظر في العالل الحقيقيج‬

‫وندما نعمل ولى رسول ثعثية اببعاد فاننا نفكر بالشاشة كناف ب ثنائية اببعاد في‬
‫والل ثعثي اببعادج او الكياو وند اسقاطه ولى مستوى ابسقاط سيتغير طوله بنسبة‬
‫معينة كما في الشكل ‪6.21‬ج‬

‫‪227‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :6.21‬تغير طول الكياو وند اسقاطهج‬

‫مصفوفة التحويل العامة )‪ (4×4‬لإلسقاط المنظوري وند استادال ابحداثيا‬


‫المتجانسة ي‬

‫حيث او‬

‫تملل ابسقاط المنظوري )‪(p, q, r‬‬

‫تملل التحويع الاطية ملل التحجيل‪ ،‬التدوير‪ ،‬السح ‪ ،‬ابنعكاس‬

‫)‪(a, b, c, d, e, i, g, j‬‬

‫‪228‬‬
‫اساسيات الرسم بالحاسوب‬

‫تملل ومليا النقل )‪ (l, m, n‬ولى المحاور )‪(x, y, z‬‬

‫تملل التحجيل الكامل )‪(s‬‬

‫بحظ نا او كل م )‪ (p, q, r‬تقابل ابحداثيا )‪ ،(x, y, z‬و ا يعني وند‬


‫استادال اي واحد منهل يملل او نقطة التعشي موضووة ولى ذلك المحور‪ ،‬اما‬
‫استادال اثني منهل فاو ذلك يشير الى استادال نقطتي تعشي وحس المحاور‬
‫المحددب‪ ،‬واذا استادمت بميعا فاو ثعث نقاط تعشي استادمت و و يملل المسقط‬
‫ثعثي النقاط كما سيرد بحقاج‬
‫ملع او تحويع المنظور لنقطة واحدب نقطة تعشي واحدب نسبة الى المحور ‪x‬‬
‫ي‪:‬‬

‫اما تحويع المنظور بالنسبة للمحور ‪ y‬فستكوو‬

‫‪229‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬اصناف االسقاط المنظوري ‪Classes of perspective projection‬‬

‫م بي ابلناف العديدب للمساوط المنظورية سنتحدث و ثعث انواع تعتبر اكلر‬


‫شيووا و ي المنظور ال ي يعتمد ولى نقطة واحدب‪ ،‬نقطتاو وثعث نقاطج ه‬
‫التسمية تعود الى ودد نقاط التعشي التي تعتمد بيجاد المسقط‪ ،‬شكل ‪6.22‬ج‬

‫‪230‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :6.22‬انواع شائعة م المسقط المنظوريج‬

‫‪ .1‬االسقاط المنظوري لنقطة واحدة ‪One point Perspective‬‬

‫ا النوع م ابنواع السهلة في وملية الرسلج‬ ‫يعتبر‬

‫لتوضيح فكرب المسقط المنظوري‪ ،‬نفرض اننا ننظر الى ولل الزاوية في ملع كرب‬
‫القدل الشكل ‪ 6.23‬م بناية وقعل الناف بج اشعة الضو تنتقل باطوط مستقيمة‬
‫تنعكس م النقاط المرئية ولى العلل الى اويننا وبر الناف بج افرض ولغرض‬
‫التوضيح فقط المحور ‪ y‬والمحور ‪ z‬ود تل تحديد اج في ه الحالة م التحديد فاو‬
‫العلل يبعد مسافة ‪ z‬ونا‪ ،‬ويرتفع بمقدار ‪y‬ج لورب العلل ي ترتفع ‪ y‬ولى الناف ب‬
‫وتبعد ‪ z‬وناج‬

‫شكل ‪ :6.23‬ولل زاوية في ملع كرب ودلج‬

‫‪231‬‬
‫اساسيات الرسم بالحاسوب‬

‫ايجاد اببعاد يعتمد ولى الحسابا الملللية للمشهد و ي نظال تشابه الملللا ج‬
‫مالحظة‪ :‬او نقطة ابلل ب تؤثرج اذا مستوى ابسقاط مر قعل الكياو‪ ،‬وليه فاو‬
‫ذلك المقطع م الكياو يظهر بحجمه الطبيعي وشكلة الحقيقيج‬
‫بيجاد الععوة الرياضية لرسل المسقط المنظوري‪ ،‬نفرض او العي او الكامرا في‬
‫نقطة ابلل والتي ترى النقطة )‪ (P‬كما في الشكل ‪ ،6.24‬ابو لحساب احداثيا‬
‫النقطة )‪ (P‬ولى مستوى ابسقاط وندما يتل اسقاطها فاننا سنتبع نظال تشابه‬
‫الملللا بنجاز ا العملج‬

‫شكل ‪ :6.24‬حساب احداثيا نقطة ولى مستوى ابسقاطج‬

‫‪232‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪z=d‬‬

‫م الممك اوادب كتابة الععوا اوعه بمصفوفة و ي مصفوفة المسقط المنظوري‬


‫وكما يلي‬

‫بسقاط النقطة )‪ (x, y, y, z‬اسقاط منظوري نقول بتطبيع مصفوفة ابسقاط‬


‫المنظوري لنقطة واحدب وكما يلي‬

‫‪2‬ج منظور النقطتان ‪ :Two point Perspective :‬يعطي شعور افضل‬


‫حول المسقطج‬

‫‪233‬‬
‫اساسيات الرسم بالحاسوب‬

‫هنا الرسم له نقطتا منظور‪ ،‬نظرا النه يحتووي علوا اثنوان مون نقواط الت شوي علوا‬
‫خط األفق‪ .‬الجل التوضوي‪ ،،‬يمكون وضوع نقواط الت شوي هوذ بشوكل عشووائي علوا‬
‫طول خط األفق‪ .‬منظور النقطتان من الممكن اسوتخدامه لرسوم نفول الكيانوات التوي‬
‫ترسم باستخدام منظور النقطة الواحدة‪ .‬هذا الشكل يتولد مث عند النظر في زاوية‬
‫منزل‪ ،‬أو النظر الا طريقين متشوعبة توتقل فيهوا المسوافة‪ .‬واحودة مون هوذ النقواط‬
‫تمثل مجموعة واحودة مون الخطووط المتوازيوة‪ ،‬بينموا تمثول النقطوة األخورا البواقي‪.‬‬
‫عند النظر من الزاوية‪ ،‬فان جدار واحد من المنزل سوف ينحسور الوا الخلوف نحوو‬
‫نقطة ت شي واحد في حين أن الجدار اآلخر يتراجع نحو نقطة الت شي المعاكسة‪.‬‬
‫منظور ال نقطتان يتواجد عندما تكون لوحة الرسم موازية للمشهد الديكارتي في احد‬
‫المحواور (عوادة محوور ‪ )z‬ولكون لويل للمحوورين اآلخورين‪ .‬إذا كوان المشوهد الوذي‬
‫ينظر إليه يتكون فقط من اسطوانة موضوعة علا مستوا أفقي‪ ،‬هنا ال يوجد فور‬
‫فوووي صوووورة االسوووطوانة بوووين منظوووور النقطوووة الواحووودة ومنظووور النقطتوووان‪ ،‬انظووور‬
‫الشكل ‪.6.25‬‬

‫شكل ‪ :6.25‬منظور النقطتاوج‬

‫‪234‬‬
‫اساسيات الرسم بالحاسوب‬

‫مصفوفة ابسقاط المنظوري لنقطتاو ي حيث سيتل ضرب بميع نقاط الشكل في‬
‫ه المصفوفة لنحصل ولى نقاط بديدب تملل الشكل في حالة ابسقاط المنظوري‬
‫لنقطتاو ‪:‬‬

‫‪3‬ج منظور الثالث نقاط ‪ : Three point Perspective‬اكلر لعوبة في‬


‫الرسلج‬
‫منظووور الووث ا نقوواط يالبووا يسووتخدم للمبوواني التووي ينظوور إليهووا موون فووو (أو موون‬
‫االسفل)‪ .‬باإلضافة إلا نقواط الت شوي االثنوين ال توي تحودثنا عنهموا سوابقا‪ ،‬واحودة‬
‫لكل جدار‪ ،‬هناك اآلن واحد لكيفية انحسار الخطوط العمودية للجدران‪ .‬بالنسبة إلا‬
‫الكا ئن الذي يشاهد من أعلا‪ ،‬فونن نقطوة الت شوي الثالثوة هوذ تكوون تحوت األرض‪.‬‬
‫بالنسبة للكائن الذي ينظر إليه من أسفل‪ ،‬كموا هوو الحوال عنودما ينظور المشواهد الوا‬
‫مبنا طويل او عالي جدا‪ ،‬فان نقطة الت شي الثالثة تكون عالية في الفضاء‪.‬‬
‫منظور النقاط الث ا يتواجد عندما يكون المنظور هو منظر للمشهد الديكارتي‬
‫حيا ان مستوا الصورة اليوازي اي من محاور المشاهد الث ا‪ .‬كل واحدة من‬
‫نقاط الت شي الث ا تتقابل مع واحد من المحاور الث ثة للمشهد‪ ،‬انظر الشكل‬
‫‪.6.26‬‬

‫‪235‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :6.26‬شكل لمنظور اللعث نقاطج‬

‫مصفوفة ابسقاط المنظوري للعث نقاط ي حيث سيتل ضرب بميع نقاط الشكل‬
‫في ه المصفوفة لنحصل ولى نقاط بديدب تملل الشكل في حالة ابسقاط‬
‫المنظوري للعث نقاط ‪:‬‬

‫‪236‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 6.5‬مقارنه بين االسقاط المتوازي واالسقاط المنظوري‬

‫االسقاط المتوازي‬ ‫االسقاط المنظوري‬


‫يحافظ نسبيا ولى نسبة ابعاد للكياوج‬ ‫التأثير البصري مشابه لتأثير نظال اببصار‬
‫البشري‬
‫اول مرونة في العرض وذلك ألنه ب يصغرج‬ ‫له منظور للتصغير‬
‫بيدب للقياسا المضبوطة‬ ‫حجل الكياو يتغير وكسيا مع المسافة م‬
‫مركز ابسقاطج اسقاط كياو بعيد و الغر‬
‫م اسقاط كيانا م نفس الحجل ي اورب‬
‫الى مستوى ابسقاطج‬
‫الزوايا بشكل وال ب يتل المحافظة‬ ‫المسافة والزاوية ب يتل المحافظة وليها‬
‫وليهاج‬ ‫بشكل وال ج‬
‫بكل ابحوال‪ ،‬فاو الاطوط المتوازية‬ ‫الاطوط المتوازية بشكل وال ب تبقى‬
‫تبقى متوازيةج‬ ‫متوازيةج‬

‫‪ ‬الكود البرمجي لتمليل المسقط المنظوري تل تطبيع البرنامج ولى بسل‬


‫مكع‬

‫>‪#include<stdio.h‬‬
‫>‪#include<math.h‬‬
‫>‪#include<graphics.h‬‬

‫)(‪main‬‬
‫{‬

‫‪237‬‬
‫اساسيات الرسم بالحاسوب‬

int x1,y1,x2,y2,gd,gm;
int ymax,a[4][8];
float par[4][4],b[4][8];
int i,j,k,m,n,p;
int xp, yp, zp, x, y, z;
a[0][0] = 100; a[1][0] = 100; a[2][0] = -100;
a[0][1] = 200; a[1][1] = 100; a[2][1] = -100;

a[0][2] = 200; a[1][2] = 200; a[2][2] = -100;


a[0][3] = 100; a[1][3] = 200; a[2][3] = -100;
a[0][4] = 100; a[1][4] = 100; a[2][4] = -200;
a[0][5] = 200; a[1][5] = 100; a[2][5] = -200;
a[0][6] = 200; a[1][6] = 200; a[2][6] = -200;
a[0][7] = 100; a[1][7] = 200; a[2][7] = -200;
detectgraph(&gd,&gm);
initgraph(&gd,&gm, "c:\\tc\\bgi");

ymax = getmaxy();
xp = 300; yp = 320; zp = 100;

for(j=0; j<8; j++)


{
x = a[0][j]; y = a[1][j]; z = a[2][j];
b[0][j] = xp - ( (float)( x - xp )/(z - zp)) * (zp);

238
‫اساسيات الرسم بالحاسوب‬

b[1][j] = yp - ( (float)( y - yp )/(z - zp)) * (zp);


}

/*- ‫ ورض الوبه ابمامي‬-*/

for(j=0;j<3;j++)
{
x1=(int) b[0][j]; y1=(int) b[1][j];
x2=(int) b[0][j+1]; y2=(int) b[1][j+1];
line( x1,ymax-y1,x2,ymax-y2);
}
x1=(int) b[0][3]; y1=(int) b[1][3];
x2=(int) b[0][0]; y2=(int) b[1][0];
line( x1, ymax-y1, x2, ymax-y2);

/*- ‫ ورض الوبه الالفي‬-*/


setcolor(11);
for(j=4;j<7;j++)
{
x1=(int) b[0][j]; y1=(int) b[1][j];
x2=(int) b[0][j+1]; y2=(int) b[1][j+1];
line( x1, ymax-y1, x2, ymax-y2);

}
x1=(int) b[0][7]; y1=(int) b[1][7];
x2=(int) b[0][4]; y2=(int) b[1][4];

239
‫اساسيات الرسم بالحاسوب‬

line( x1, ymax-y1, x2, ymax-y2);

setcolor(7);
for(i=0;i<4;i++)
{
x1=(int) b[0][i]; y1=(int) b[1][i];
x2=(int) b[0][4+i]; y2=(int) b[1][4+i];
line( x1, ymax-y1, x2, ymax-y2);
}
getch(); getch();
}

240
‫اساسيات الرسم بالحاسوب‬

‫الفصل السابع‬
‫متعدد ابضعع‬
‫‪THE POLYGONS‬‬

‫‪ 7.1‬المقدمة‬
‫ي م اساسيا الهندسة‪ ،‬ابشكال محددب باطوطج معظل‬ ‫الاطوط والمستويا‬
‫بهود النم بة بغض النظر و كيفية بدئها وادب تنتهي مع تشكيلة واسعة م‬
‫الملللا ‪ ،‬والسب في ذلك او ا الشكل المللث و بالتاكيد مستوي حتى واو‬
‫كانت رؤوسه ي نقاط في فضا ثعثي اببعادج ناك مستودوا نماذج ولى‬
‫الشبكة العنكبوتية تتكوو بالكامل م مجمووة كبيرب م ابف الملللا ج او فهل‬
‫ي مهمة بشكل قا في‬ ‫ندسة الملللا وكيف تستادل بكفا ب في الحسابا‬
‫رسول الحاسوبج‬
‫الملللا ي اكلر ابشكال ابولية في رسول الحاسوب‪ ،‬ولك متعددا ابضعع‬
‫تظهر بشكل متكرر وبه ا فاو ولينا او نهيئها لغرض تحليلها وتعديلهاج ولف‬
‫متعدد ابضعع يتضم مجمووة م الرؤوس ومجمووة م الحواف‪ ،‬بشكل اكلر‬
‫دوة فاو لدينا التعريف التالي‪:‬‬
‫متعدد ابضعع و مجمووة مرتبة م نقاط ماتلفة )‪ (P0, P1, … , Pn-1‬تدوى‬
‫الرؤوس )‪ ,(vertices‬حيث او )‪ (P0 P1), (P1 P2), … , (P0 Pn−1‬تملل‬
‫الحواف اضعع متعدد ابضعع ج‬
‫م راس الى الرأس العحع‪ ،‬فاو التعريف‬ ‫مع اقتعف النقاط والحواف التي ت‬
‫سوف ب يسمح لمتعدد ابضعع او يحتوي ولى فراغ داقلهج م الواضح‪ ،‬او‬
‫المللث و متعدد اضعع و ناك امكانية او تكوو كل ابنواع ابقرى متعددب‬
‫ابضعع‪ ،‬منها تلك التي تظهر متناظرب بشكل بميل مع بوان متساوية الى تلك‬
‫التي تلتوي مع حواف تقاطع بعضها البعضج لتصنيف متعدد ابضعع فأننا سنبدأ‬
‫بتعريف متعدد اضعع بسيط و و ذلك ال ي يكوو فيه فقط اثناو م الحواف تتقاطع‬

‫‪241‬‬
‫اساسيات الرسم بالحاسوب‬

‫في كل راس‪ ،‬وب يوبد اثناو م الحواف تتقاطع بمكاو اقرج و ه ستلغي ابشكال‬
‫الملتوية‪ ،‬ول لك سيكوو تركيزنا ولى متعدد ابضعع البسيط كما في الشكل ‪7.1‬ج‬

‫شكل ‪ :7.1‬انواع متعدد ابضعع البسيط‬

‫الحواف في متعدد ابضعع البسيط تكوو سياج مغلع حول الداقلج السياج م‬
‫الممك او يكوو ملتوي بشكل بيد‪ ،‬ل لك ولينا او نصنف متعدد ابضعع بشكل‬
‫اضافي الى متعدد اضعع محدب ‪ convex‬ومتعدد اضعع مقعر ‪concave‬ج‬
‫بشكل ولل‪ ،‬اذا كاو ودد م الاطوط تتصل ببعضها البعض وتكوو شكل مغلع‬
‫بحيث تلتقي نقطة البداية للاط ابول مع نقطة النهاية ألقر قط فاو ا الشكل‬
‫المغلع يسمى متعدد ابضعع ‪Polygon‬ج في متعدد ابضعع فاو نقطة البداية‬
‫ونقطة النهاية ي واحدب انظر الشكل ‪7.2‬ج‬

‫شكل‪ :7.2 :‬ابشكال التي تملل متعدد ابضعع والتي بتعتبر متعدد ابضععج‬

‫‪242‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 7.2‬انواع متعدد االضالع‬

‫ناك نوواو م متعدد ابضعع و ما‬


‫‪ ‬متعدد اضعع محدب ‪ :Convex polygonl‬في ا النوع فاو اي وطعة قط‬
‫تربط بي اي نقطتي داقل متعدد ابضعع ستكوو بالكامل داقل متعدد‬
‫ابضعع كما في الشكل ‪7.3‬ج‬

‫شكل ‪ :7.3‬متعدد اضعع محدبج‬

‫‪ ‬متعدد اضعع مقعر ‪ :Concave Polygon‬في ا النوع م متعدد ابضعع‬


‫فاو وطعة الاط التي تربط اي نقطتي داقل متعدد ابضعع ربما يكوو بالكامل‬
‫داقل متعدد ابضعع او ربما ب يكوو بالكامل داقل متعدد ابضعع كما في‬
‫الشكل ‪7.4‬ج‬

‫شكل ‪ :7.4‬متعدد اضعع مقعرج‬

‫‪243‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 7.3‬النقاط في متعدد االضالع ‪Points in Polygon‬‬


‫واحدب م المشاكل ابساسية في الحسابا الهندسية ي اقتبار او تحديد اذا كانت‬
‫نقطة ما تقع داقل متعدد ابضعع او قارج متعدد ابضععج في سياق رسل‬
‫البيانا ‪ ،‬وفي اكلر التطبيقا العامة فاو المشكلة ابساسية و تحديد فيما اذا كانت‬
‫النقطة يج رسمها او ب ترسلج وند مأل متعدد ابضعع بلوو معي نحتاج احيانا‬
‫لتحديد نقطة ما اذا كانت داقل الكياو متعدد ابضعع او قاربهج‬
‫ناك ودب طرق لفحص النقطة اذا كانت داقل او قارج متعدد ابضععج‬

‫‪ 7.3.1‬طريقة الرقم الفردي والزوجي‬


‫لتحديد نقطة معينة ولى انها داقل او قارج متعدد ابضعع وليك اتباع الاطوا‬
‫التالية‪:‬‬
‫‪1‬ج رسل قطوط افقية م النقطة الى ما بنهاية بحيث‬
‫‪ ‬ترسل باي اتجاهج‬
‫‪ ‬ب تمر ه الاطوط قعل رؤوس متعدد ابضععج‬
‫‪2‬ج احس ودد مرا وطع الاط ابفقي ألضعع حواف متعدد ابضععج‬
‫‪3‬ج اذا كاو ودد مرا وطع اضعع متعدد ابضعع فردي‪ ،‬فاو النقطة داقل‬
‫متعدد ابضععج‬
‫‪4‬ج اذا كاو ودد مرا وطع اضعع متعدد ابضعع زوبي‪ ،‬فاو النقطة قارج‬
‫متعدد ابضععج‬

‫بحظ الشكل ‪7.5‬ج‬

‫‪244‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :7.5‬فحص نقطة بطريقة الرول الفردي والزوبيج‬

‫‪ 7.3.2‬قاعدة رقم االلتفاف الذي ال يساوي صفر ‪Non-Zero Winding‬‬


‫‪Number Rule‬‬
‫بداية يج او تكوو اضعع الشكل حوافه قطوط متجهج‬
‫او الاطوط التي تملل متعدد ابضعع يتل تحديد اتجاه لها اما او يتل تحديد اتجا ها‬
‫باتجاه دوراو وقارب الساوة او باتجاه معاكس بتجاه دوراو وقارب الساوة‬
‫بحيث تكوو متجها مستمرب لتكوو بالنهاية شكل مغلع كما في الشكل ‪7.6‬ج‬

‫شكل ‪ :7.6‬متعدد اضعع ذا اضعع متجهج‬

‫اقتبار النقطة اذا كانت في داقل متعدد ابضعع او قاربهج‬

‫‪245‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪1‬ج احس رول ابلتفاف بمعنى ودد مرا او تمر الحافة حول النقطة سوا‬
‫باتجاه وقارب الساوة او باتجاه وكس وقارب الساوة ‪ ،‬تكوو ويمة المتجه‬
‫اذا كاو اتجا ه م ابولى لألسفل تساوي سال واحد بينما ويمة المتجه‬
‫ال ي يكوو اتجا ه م ابسفل لألولى تساوي واحدج‬
‫‪2‬ج تكوو النقطة قارج متعدد ابضعع اذا كاو ودد الدوراو رول ابلتفاف‬
‫يساوي لفرج‬
‫‪3‬ج تكوو النقطة داقل متعدد ابضعع اذا لل يك رول ابلتفاف يساوي لفرج‬

‫للتوضيح اكلر لنعحظ النقطة ‪ P‬شكل ‪ ، 7.7‬او الاطوا العزمة لحساب رول‬
‫ابلتفاف وال ي م ويمته نحدد النقطة قارج او داقل متعدد ابضعع ي ما يلي‪:‬‬
‫‪1‬ج ابتدا يكوو رول ابلتفاف يساوي لفرج‬
‫‪2‬ج م النقطة ‪ P‬نرسل قط افقي باتجاه اليسار الى ما بنهايةج‬
‫‪3‬ج اذا وطع الاط احدى حافا متعدد ابضعع وكانت ه الحافة تتجه م ابسفل‬
‫الى ابولى وند ا اضف واحد الى رول ابلتفافج‬
‫‪4‬ج اذا وطع الاط احدى حافا متعدد ابضعع وكانت ه الحافة تتجه م ابولى‬
‫لألسفل وند ا اطرح واحد م رول ابلتفافج‬

‫شكل ‪ :7.7‬فحص نقطة بطريقة ابلتفافج‬

‫‪246‬‬
‫اساسيات الرسم بالحاسوب‬

‫مالحظة‪ :‬متعدد ابضعع القياسي ملل المللث‪ ،‬المستطيل‪ ،‬الشكل السداسي والتي‬
‫ب تقطع نفسها وليس في داقلها فتحة‪ ،‬فاو طريقة الرول الفردي والزوبي وواودب‬
‫رول ابلتفاف ال ي ب يساوي لفر تعطي نفس النتائج بالنسبة لمتعدد ابضعع‬
‫القياسيج‬

‫شكل ‪ :7.8‬متعدد اضعع وياسيج‬

‫مالحظة‪ :‬اقتبار النقطة لمتعدد ابضعع العال و و متعدد ابضعع ال ي يقطع نفسه‬
‫او يحتوي ولى فتحا داقله كما في الشكل ‪ ،7.9‬فاو طريقة الرول الفردي‬
‫والزوبي وواودب رول ابلتفاف تعطي نتائج ماتلفة لمتعدد ابضعع العالج‬

‫شكل ‪ :7.9‬متعدد اضعع يحتوي ولى فتحا داقليةج‬

‫‪247‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪Polygon filling‬‬ ‫‪ 7.4‬خوارزمية امالء متعدد االضالع بلون معين‬


‫‪algorithms‬‬
‫وملية امع متعدد ابضعع بلوو محدد‪ ،‬تحتاج الى حساب او تحديد ونصر‬
‫الصورب ال ي يقع ولى حدود متعدد ابضعع وتلك التي تقع داقل متعدد ابضععج‬
‫سنحاول التعرف ولى بعض التقنيا التي ستساود ولى امع متعدد ابضعع‬
‫بلووج‬

‫‪ 7.4.1‬خوارزمية مسح الخط ‪Scan Line Algorithm‬‬


‫ه الاوارزمية تعمل ولى وطع حواف او اضعع متعدد ابضعع بواسطة قط‬
‫المسح ومأل متعدد ابضعع بي كل زوج م التقاطعا ج الاطوا التالية توضح‬
‫كيفية ومل ه الاوارزمية‪:‬‬
‫‪1‬ج ايجاد القيمة العليا والدنيا للمحور ‪ y‬لمتعدد ابضعع ) ‪ (ymax , ymin‬كما‬
‫في شكل ‪7.10‬ج‬

‫شكل ‪ :7.10‬رسل قط المسحج‬

‫‪2‬ج قط المسح يقطع اضعع متعدد ابضعع م ‪ ymin‬الى ‪ ymax‬اي انه يبدأ‬
‫م ‪ ymin‬لعودا الى ابولى بزيادب سطر في كل مرب لغاية او يصل الى‬
‫‪ ymax‬زيادب سطر يعني زيادب ونصر لورب واحدب او تقليل ونصر‬
‫‪248‬‬
‫اساسيات الرسم بالحاسوب‬

‫لورب واحدب اوتمادا ولى مووع نقطة ابلل في الشاشة باتجاه المحور‬
‫‪y‬ج‬
‫‪3‬ج رت نقاط التقاطع ترتي تصاودي م ابول الى ابولى وفقا إلحداثيا‬
‫‪ ،x‬ترت النقاط ولى شكل ازواج كل زوج يملل وطعة مستقيل وب لك‬
‫ستكوو نقاط الشكل ‪ 7.10‬كما يلي‪:‬‬

‫))‪((p0, p1), (p1, p2), and (p2, p3‬‬

‫‪4‬ج امأل كل تلك ابزواج م ابحداثيا والتي ي داقل متعدد ابضعع‬


‫وا مل تلك التي قارج متعدد ابضعع باإلمكاو اقتبار اي نقطة ولى‬
‫وطعة الاط المستقيل بي زوج م نقاط التقاطع ‪ ،‬فاذا كانت النقطة التي‬
‫اقتبر قارج متعدد ابضعع فاو كامل وطعة الاط المستقيل ي قارج‬
‫متعدد ابضعع ونفس الشي اذا كانت داقل متعدد ابضعع فاو كامل‬
‫وطعة الاط المستقيل ستكوو داقل متعدد ابضعع ج‬

‫‪ 7.4.2‬خوارزمية المأل بالطوفان ‪Flood Fill Algorithm‬‬


‫بعض ابحياو نرغ او نمأل مساحة الكياو بلوو معي بينما تكوو حدوده بلوو‬
‫ماتلفج م الممك او نصبغ بعض الكيانا بلوو داقلي محدد بدب م البحث و‬
‫لوو حدود قالة كما في قوارزمية المأل وفقا للحدودج‬
‫فبدب م ابوتماد ولى حدود الكياو‪ ،‬ي تعتمد ولى لوو ابمع ج بكعل اقر‪ ،‬ي‬
‫تبدل اللوو الداقلي للكياو بلوو ابمع المطلوبج فعندما ب يبقى ناك ونصر‬
‫لورب اضافي م اللوو الداقلي ابللي‪ ،‬فاو الاوارزمية تكوو ود انجز وملهاج‬
‫مرب اقرى‪ ،‬الاوارزمية تعتمد ولى طريقة النقاط ابربعة المتصلة المتجاورب او‬
‫النقاط اللمانية المتصلة )‪ (Four-connect or Eight-connect‬لتغيير لوو‬
‫ونالر الصوربج لك بدب م النظر الى لوو الحدود ابضعع فهي تنظر الى كل‬

‫‪249‬‬
‫اساسيات الرسم بالحاسوب‬

‫ونالر الصورب المجاورب والتي ي بز م داقل متعدد ابضعع كما في الشكل‬


‫‪7.11‬ج‬

‫شكل ‪ :7.11‬اقتيار لوو ونصر الصورب وفقا الى لوو ابمع وليس لوو الحدودج‬

‫‪boundary filling‬‬ ‫‪ 7.4.3‬خوارزمية المأل اعتمادا على الحدود‬


‫‪algorithm‬‬
‫قوارزمية المأل اوتمادا ولى الحدود تعمل كما يشير اسمهاج ه الاوارزمية تاتار‬
‫نقطة داقل الكياو وتبدا بالمأل لحي او تصل الى حدود اضعع الكياوج في ه‬
‫الاوارزمية فاو نقطة الب رب تكوو ثابتة‪ ،‬ويتل فحص ونصر الصورب المجاور‬
‫ليطابع لوو حدود متعدد ابضععج وليه‪ ،‬يتل المأل باللوو لحي الولول الى‬
‫الحدودج المنطقة الماتارب م الممك او تكوو النقاط المتجاورا ابربع او النقاط‬
‫المتجاورا اللماوج‬

‫‪ ‬النقاط المتصالت او المتجاورات االربع لمتعدد االضالع ‪4-connected‬‬


‫‪polygon‬‬
‫في ه التقنية فاو ونالر الصورب ابربع المتصلة يتل استادامها كما في الشكل‬
‫‪7.12‬ج يتل تلوي ونالر الصورب في ابولى وابسفل واليمي واليسار نسبة الى‬
‫ونصر الصورب الحالي‪ ،‬و ه العملية تستمر لحي او نجد الحدود بلوو ماتلفج‬
‫‪250‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :7.12‬ونالر الصورب ابربع المجاورب لعنصر الصورب باللوو ابزرق ج‬

‫الاوارزمية‬
‫‪1‬ج ابتدا تحديد ويمة نقطة الب رب اي اقتيار نقطة داقل متعدد ابضعع تكوو‬
‫نقطة البداية )‪(seedx, seedy‬ج ويتل تحديد لوو ابمع ‪ f-color‬وتحديد‬
‫لوو الحدود ‪b-col‬ج‬
‫‪2‬ج حدد ويل الحدود لمتعدد ابضععج‬
‫‪3‬ج افحص نقطة الب رب اذا كاو لونها و ليس لوو الحدود وليس لوو ابمع ‪،‬‬
‫به ه الحالة كرر الاطوب ‪ 4‬والاطوب ‪ 5‬لحي الولول الى ونصر لورب‬
‫ولى الحدود بلوو حدود متعدد ابضعع ج‬
‫‪4‬ج غير لوو الب رب ابفتراضي الى لوو ابمع ج‬
‫‪5‬ج كرر الاطوا )‪ (3, 4‬ولى النقاط المجاورب ابربعج‬
‫‪6‬ج الدالة البرمجية له ه الاوارزمية ي‬

‫)‪boundary_ fill (x, y, f_color, b_color‬‬


‫{‬
‫)‪if ( getpixel (x,y) != b_color && getpixel (x,y) != f_color‬‬
‫)‪putpixel (x, y, f_color‬‬
‫;)‪boundary_fill( x+1, y, f_color, b_color‬‬

‫‪251‬‬
‫اساسيات الرسم بالحاسوب‬

‫;)‪boundary_fill( x, y+1, f_color, b_color‬‬


‫;)‪boundary_fill( x-1, y, f_color, b_color‬‬
‫;)‪boundary_fill( x, y-1, f_color, b_color‬‬
‫}‬
‫}‬

‫ناك مشكلة في ه التقنيةج افرض الحالة التي في الشكل ‪ 7.13‬نح نحاول مأل‬
‫كامل المنطقةج نا‪ ،‬الصور ستمأل بزئياج في بعض الحاب المتجاورا ابربع ب‬
‫يمك استادامهاج‬

‫شكل ‪ :7.13‬بعض مشاكل النقاط المتجاورب ابربعج‬

‫النقاط المتجاورة الثمان لمتعدد االضالع‬ ‫‪‬‬

‫في ه التقنية سوف يتل استادال ونالر الصورب اللماو المتجاورب كما في‬
‫الشكل ‪7.14‬ج سوف نضع ونصر لورب فوق واسفل يمي ويسار ونصر‬
‫الصورب الحالي كما فعلنا في المتجاورا ابربعج‬
‫يضاف الى ذلك‪ ،‬سوف يتل وضع ايضا ونصر لورب في المحاور ول لك‬
‫ستكوو كامل المساحة لعنصر الصورب الحالي مغطابج ه العملية تستمر‬
‫لحي او نجد الحدود بلوو ماتلفج‬
‫‪252‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :7.14‬النقاط المتجاورب اللماوج‬

‫الاوارزمية‬
‫ابتدا يتل تحديد ويمة نقطة الب رب اي اقتيار نقطة داقل متعدد ابضعع‬ ‫‪1‬ج‬
‫تملل نقطة البداية ‪(seedx, seedy) ،‬ج‬
‫في بعض الحاب يكوو المطلوب تحديد لوو ابمع ماتلف و لوو‬ ‫‪2‬ج‬
‫الحدود ل لك سنركز نا ولى ه الفكرب و ي بتاتلف كليرا و الحالة‬
‫ابولى التي نووشت في المجاورا ابربع ج يتل تحديد لوو ابمع المقترح‬
‫‪ f-color‬وتحديد اللوو ابفتراضي ‪ d-col‬ال ي و اللوو الموبود في‬
‫متعدد ابضعع حالياج‬
‫حدد ويل الحدود لمتعدد ابضععج‬ ‫‪3‬ج‬
‫افحص لوو المجاورا بنفس الطريقة السابقة لك بدب م مطابقتها مع‬ ‫‪4‬ج‬
‫لوو الحدود فاو لوو قا سيحدد لهاج تكرر الاطوب ‪ 4‬والاطوب ‪ 5‬لحي‬
‫الولول الى ونصر لورب ولى الحدودج‬
‫غير اللوو ابفتراضي للب رب الى لوو ابمع ج‬ ‫‪5‬ج‬
‫دالة تنفي ه الطريقة للمجاورا اللماو ي‪:‬‬ ‫‪6‬ج‬

‫)‪flood_ fill (x, y, old_color, new_color‬‬

‫‪253‬‬
‫اساسيات الرسم بالحاسوب‬

‫{‬
‫)‪putpixel (x, y, new_color‬‬
‫)‪flood_ fill (x+1, y, old_color, new_color‬‬
‫)‪flood_ fill (x-1, y, old_color, new_color‬‬
‫)‪flood_ fill (x, y+1, old_color, new_color‬‬
‫)‪flood_ fill (x, y-1, old_color, new_color‬‬
‫)‪flood_ fill (x+1, y+1, old_color, new_color‬‬
‫)‪flood_ fill (x-1, y-1, old_color, new_color‬‬
‫)‪flood_ fill (x+1, y-1, old_color, new_color‬‬
‫)‪flood_ fill (x-1, y+1, old_color, new_color‬‬
‫}‬
‫}‬

‫النقاط المجاورب ابربع تفشل في مأل المساحة الموضحة في الشكل ‪،7.13‬‬


‫بينما ا ب يحدث مع النقاط المجاورب اللماوج‬
‫م مساوئ ه الاوارزمية انها ب تعمل بشكل بيد لمتعدد ابضعع‬
‫الكبيرج‬
‫ك لك‪ ،‬اذا كانت بعض ونالر الصورب داقل متعدد ابضعع بلوو ماتلف‬
‫فاو وملية ابمع ستنتهي دوو او يتل امع متعدد ابضعع بالكاملج‬

‫‪254‬‬
‫اساسيات الرسم بالحاسوب‬

‫الفص الثامن‬

‫النوافــــــــــــــذ والعرض‬
‫‪World Window and Viewports‬‬

‫المقدمة‬ ‫‪8.1‬‬
‫تبرز الحابة بشكل مستمر لعرض مشهد م العالل الحقيقي ولى شاشة الحاسوب او‬
‫التلفزيوو‪ ،‬وكما و معلول فاو ابعاد العالل الحقيقي غالبا ب تتناس مع ابعاد الشاشة‬
‫مما يستوب التحويل م ابعاد العالل الحقيقي الى ابعاد الشاشة مع المحافظة ولى‬
‫اببعاد النسبية للكيانا الماتلفة في العالل الحقيقيج‬
‫تمليل اي كياو في فضا العالل الحقيقي يمك او يقاس بالوحدا الفيزيائية او اي‬
‫وحدا تستادل بالعالل الحقيقي ملل سنتمتر‪ ،‬المتر‪ ،‬كيلو متر‪ ،‬ميل‪ ،‬وغير اج‬
‫بينما ابهزب العرض وادب تستادل ونصر الصورب وممك وحدا اقرى‪ ،‬ل لك‬
‫ملع نقول شاشة العرض ي ‪ 800×600‬ونصر لوربج‬
‫او ابعاد العالل الحقيقي تتراوح بي الكبر والصغر نسبة الى ابعاد الشاشة‪ ،‬نعحظ‬
‫احيانا او ابعاد كيانا في العالل الحقيقي تقاس بابمتار ملل المساك والسيارا‬
‫وغير ا‪ ،‬وربما ناك م تقاس بالميل والكيلومتر ملل لور المدو وتزداد ه‬
‫اببعاد لنصل الى ابعاد تقاس بالسني الضوئية كما و الحال مع الكوو الواسع‬
‫والفضا العمتنا يج بالمقابل ناك م تقاس بابعاد الغر م ابعاد الشاشة ملع‬
‫ابوعل وادوا الكتابة ربما تقاس بالسنتمتر‪ ،‬وتصغر ه المقاييس لنصل الى‬
‫الدالتوو كوحدب وياس للكتل ال ريةج وفي بميع ه ابحوال فاننا بحابة الى طريقة‬
‫لعرض ه الكيانا ولى الشاشة بحيث تحافظ ولى بميع لفاتها وابعاد ا النسبيةج‬
‫ا الفصل سيركز ولى ومليا التحويل هج‬

‫‪255‬‬
‫اساسيات الرسم بالحاسوب‬

‫تعاريف‬ ‫‪8.2‬‬
‫‪ ‬ناف ب المشهد ‪ :Windows‬في رسول الحاسبة يشير الى مساحة مستطيلة في‬
‫نظال ابحداثيا الاا بالكوو يعرف باسل نظال الكوو ‪world system‬ج‬
‫م الممك تعريف ناف ب المشهد بحيث تكوو اكبر‪ ،‬مساوية‪ ،‬او الغر م‬
‫المدى الحقيقي لقيل البيانا ‪ ،‬اوتمادا ولى رغبتك بعرض البيانا كاملة او‬
‫بز منهاج بشكل وال فاو ناف ب المشهد تحدد داقلها المشهد المطلوب ورضه‬
‫ولى الشاشة كما في الشكل ‪8.1‬ج‬

‫شكل ‪ :8.1‬ناف ب المشهد التي تعرض بز م دار في العالل الحقيقيج‬

‫‪ ‬ناف ب العرض ‪ :viewport‬و ي تملل مساحة مستطيلة ولى شاشة الجهاز تحدد‬
‫في احداثيا منسقة‪ ،‬والتي يتل ورض لورب البيانا داقلها لورب الكوو‬
‫الحقيقي المطلوب ورضه ولى الشاشة ج م الممك ورض الصورب ولى‬
‫كامل شاشة العرض او ولى بز م الشاشة ملع الجز العلوي ابيم م‬
‫ه الاالية ولى شاشة بهاز‬ ‫شاشة الجهاز ج ربما الكلير منا ود استفاد م‬
‫التلفزيوو حيث م الممك تجزأب الشاشة الى مجمووة م اببزا وفي كل‬
‫بز يتل ورض واحدب م القنوا ج‬
‫ناف ب العرض فضا بزئي للصورب ي وبارب و مستطيل ولى شاشة العرض‬
‫النقطية يحدد اي يتل ورض الصورب‪ ،‬وادب كامل الشاشةج ل لك‪ ،‬مبدئيا م الممك‬
‫او نكرر نفس الصورب بنواف ورض ماتلفة داقل الشاشةج‬
‫‪256‬‬
‫اساسيات الرسم بالحاسوب‬

‫او مساحة احداثيا العالل الحقيقي التي يتل اقتيار ا لتصوير او ورض مشهد‬
‫تسمى ناف ب المشهدج اما المساحة ولى بهاز العرض الشاشة والتي سيتل بها‬
‫ورض الصورب المحددب في ناف ب المشهد تدوى ناف ب العرضج ناف ب المشهد تحدد‬
‫ما و المشهد ال ي يج او يعرض‪ ،‬بينما ناف ب العرض تحدد اي يتل العرض في‬
‫الشاشة كما في الشكل ‪8.2‬ج‬

‫شكل ‪ :8.2‬شاشة العرض موضح وليها ناف ب العرضج‬

‫تحويل نافذة المشهد الى نافذة العرض‬ ‫‪8.3‬‬


‫التحويل م ناف ب المشهد الى ناف ب العرض تتعلع بالتحويع الاطية التي تكيف‬
‫ناف ب المشهد بموب ناف ب العرضج او وملية تكيف ناف ب المشهد تعني تغيير ابعاد ا‬
‫لتكوو متطابقة مع ابعاد ناف ب العرض‪ ،‬ويتبع ذلك تغيير ابعاد كل ابشكال داقل‬
‫ناف ب المشهد بنفس نسبة تغيير ابعاد ناف ب المشهد‪ ،‬فملع وطعة الاط في ناف ب المشهد‬
‫تكيف الى ابعاد تتناس مع ابعاد ناف ب العرض مع المحافظة ولى المواوع وابطوال‬
‫النسبيةج او وملية التكييف ي وملية ورض الصورب التي تعرض في ناف ب المشهد‬
‫ولى شاشة الحاسبة في ناف ب العرضج ه العملية تتضم ودد م ومليا‬
‫التحويلج‬

‫‪257‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ -A : 8.3‬ناف ب المشهد وحس احداثيا العالل الحقيقيج ‪ -B‬ناف ب العرض وحس احداثيا‬
‫الشاشةج‬

‫في الشكل )‪ (8.3 A‬فاو ناك نقطة في العالل الحقيقي تل تحديد ا ضم ناف ب‬
‫المشهد‪ ،‬ه النقطة تل تحويلها لتوضع ضم ناف ب العرض في مكاو يتناس مع‬
‫تغيير اببعاد كما في الشكل )‪ (8.3 B‬مع معحظة او المووع النسبي للنقطة لل‬
‫يتغيرج‬
‫في الشكل ‪ 8.3‬م الممك تكييف او تحويل النقطة وحس ابحداثيا المحددب‬
‫للنقطة في ناف ب المشهد والعرضج احداثيا النقطة في ناف ب المشهد )‪ (xw, yw‬يتل‬
‫تكيفها الى ناف ب العرض لتكوو )‪(xv, yv‬ج‬

‫خطوات تحويل نافذة المشهد الى نافذة العرض‬ ‫‪8.4‬‬


‫لغرض فهل كيفية وملية التحويل بي ناف ب المشهد وناف ب العرض والحصول ولى‬
‫وعوة م الممك تطبيقها لكل ومليا التحويل سنتبع الاطوا التالية‪:‬‬
‫‪1‬ج نفرض او الشكل ‪ 8.4‬يملل لورب لبيت في العالل الحقيقي وتل وضع ناف ب‬
‫ا البيت فقط‪ ،‬ا الجز ال ي و في‬ ‫مشهد وليه لغرض رؤية بز م‬
‫العالل الحقيقي ربما تكوو ابعاده مساوية لعشرا ابمتارج ابو مطلوب ورض‬
‫‪258‬‬
‫اساسيات الرسم بالحاسوب‬

‫الصورب الظا رب في ناف ب المشهد ولى شاشة الحاسوب وفي ناف ب العرض‬
‫ابعاد ناف ب العرض ي اما او تكوو كامل شاشة الحاسوب او بز م شاشة‬
‫الحاسوب وفي اي مووع ضم شاشة الحاسوب ج احداثيا ناف ب المشهد محددب‬
‫باحداثيا الزاوية اليسرى السفلى للناف ب )‪ ،(xmin, ymin‬وك لك احداثيا‬
‫الزاوية اليمنى العليا للناف ب )‪ ،(xmax, ymax‬ه ابحداثيا م الممك او تغير‬
‫وفقا لنقطة ابلل في الشاشة المستادمةج‬

‫شكل ‪ :8.4‬ناف ب مشهد في العالل الحقيقي‬

‫‪2‬ج نقل ه الناف ب ناف ب المشهد الى نقطة ابلل‪ ،‬تسح النقطة اليسرى السفلى‬
‫لتكوو في نقطة ابلل وتسح بميع احداثيا الناف ب بنفس ويل السح ‪ ،‬شكل‬
‫‪8.5‬ج‬

‫شكل ‪ : 8.5‬يملل ناف ب المشهد بعد نقلها الى نقطة ابللج‬

‫‪259‬‬
‫اساسيات الرسم بالحاسوب‬

‫مصفوفة النقل ي‬

‫‪3‬ج بعد او تل وضع ناف ب المشهد في نقطة ابلل‪ ،‬حاو الووت لتغيير حجل ه‬
‫الناف ب ناف ب المشهد لتكوو بقدر حجل ناف ب العرضج طبعا ه وملية تحجيل‬
‫ا ب يمنع م او تكوو وملية تكبير‬ ‫و ي غالبا تكوو وملية تصغير لك‬
‫وقصولا مع اببسال الصغيرب بدا في العالل الحقيقي ملل الجزيئة الكيميائية‬
‫وغير ا التي نرغ بعرضها ولى شاشة الحاسوب ج وملية حساب معامل‬
‫التحجيل بالنسبة للمحور )‪ (x‬والمحور )‪ (y‬تحس كما يلي‪:‬‬
‫معامل التحجيل بالنسبة للمحور )‪ (x‬و طول ظلع ناف ب العرض باتجاه ‪x‬‬
‫\ طول ظلع ناف ب المشهد باتجاه ‪ x‬ج‬
‫معامل التحجيل بالنسبة للمحور )‪ (y‬و طول ظلع ناف ب العرض باتجاه ‪\ y‬‬
‫طول ظلع ناف ب المشهد باتجاه ‪ y‬ج‬
‫للتوضيح اكلر نفرض او احداثيا ناف ب العرض محددب باحداثيا الزاوية‬
‫اليسرى السفلى للناف ب )‪ ،(umin, vmin‬وك لك احداثيا الزاوية اليمنى العليا‬
‫للناف ب )‪(umax, vmax‬ج وليه فاو‬

‫باستادال معاملي التحجيل اوعه يتل تحجيل ناف ب المشهد لتكوو مساوية ببعاد ناف ب‬
‫العرض‪ ،‬الشكل ‪8.6‬ج‬
‫‪260‬‬
‫اساسيات الرسم بالحاسوب‬

‫الشكل ‪ :8.6‬ناف ب المشهد تل تحجيمها الى حجل ناف ب العرضج‬

‫‪4‬ج الاطوب ابقيرب بعد او تل التحجيل‪ ،‬و نقل الصورب المحجمة او الناف ب‬
‫المحجمة ناف ب المشهد التي البحت بحجل ناف ب العرض الى مووعها النهائي‬
‫المحدد لها في شاشة الحاسوبج‬
‫نا العملية تاتلف‪ ،‬وندما نقول النقل فاننا بنعكس وملية النقل التي تمت في‬
‫الاطوب ابولى كما كنا نفعل في فصول التحويع اللنائية واللعثية‪ ،‬وذلك بننا‬
‫ب نعيد الكياو الى مووعه ابللي وانما سنعيده الى مووع اقر و و مووع ناف ب‬
‫العرض ولى شاشة الحاسوب‪ ،‬ولكي تنطبع ناف ب المشهد المحجمة مع ناف ب‬
‫العرض فسنضع الزاوية اليسرى السفلى لناف ب المشهد ولى الزاوية اليسرى‬
‫السفلى لناف ب العرض‪ ،‬وبالتالي ستنطبع بميع الزوايا ابقرى بي ناف ب المشهد‬
‫وناف ب العرض بنها البحت بنفس حجل ناف ب العرض ج وملية النقل ستتل‬
‫بمعامل )‪ ،(umin, vmin‬انظر الشكل ‪8.7‬ج‬

‫الشكل ‪ :8.7‬النقل الى المووع النهائيج‬

‫‪261‬‬
‫اساسيات الرسم بالحاسوب‬

‫مصفوفة النقل ي‬

‫وبه ا فاو وملية التحويل م الممك ابمالها كما يلي‬


‫‪M = Tw . S . Tv‬‬

‫حي ث او ‪ M‬تمل ل وملي ة التحوي ل‪ Tw ،‬تمل ل نق ل ناف ب المش هد‪ S ،‬تحج يل ناف ب‬
‫المشهد‪ ،‬واقيرا ‪ Tv‬تملل النقل الى الشاشة المووع النهائي ج‬
‫م الممك او نملل العمليا اوعه ولى شكل مصفوفة‬

‫ابو لو ضربنا المصفوفا اللعث واحدب ب ابقرى سنحص ل ول ى مص فوفة واح دب‬
‫تملل وملية التحويل المصفوفة العامة و ي‬

‫‪262‬‬
‫اساسيات الرسم بالحاسوب‬

‫بحظ نا او ك ل م )‪ (x, y‬تم لعو معام ل النق ل لناف ب المش هد )‪ ,(Tx , Ty‬ك لك‬
‫فاو كل م )‪ (umin , vmin‬تملعو معامل النقل لناف ب المشهد بعد التحج يل ال ى مك او‬
‫ناف ب العرض ولى الشاشة )‪(Tu , Tv‬ج‬

‫مثال‪ :‬لو فرضنا او ناف ب المشهد وناف ب العرض لهل الاوا الهندسية التالية‪:‬‬
‫ابعاد ناف ب المشهد )‪ (Xmax, Xmin, Ymax, Ymin‬ي )‪(250, 100, 300, 50‬‬
‫بينما ابعاد ناف ب العرض )‪ (Umax, Umin, Vmax, Vmin‬ي )‪(40, 10, 30, 5‬‬
‫المطلوب اجراء عملية تحويل نافذة المشهد الى نافذة العرض (عارض المشاهد علاى‬
‫الشاشة في نافذة العرض)‪.‬‬
‫خطوات الحل هي‪:‬‬
‫في هذا المثال سنساتخدم المتغيارات )‪ (x, y‬لنافاذة المشاهد‪ ،‬بينماا المتغيارات )‪(u, v‬‬
‫تستخدم لنافذة العرض‪.‬‬
‫‪1‬ج نقل ناف ب المشهد الى نقطة ابلل‪:‬‬

‫)‪(xmin = 100, ymin = 50‬‬


‫‪Tx = -100, Ty = -50‬‬

‫‪263‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪2‬ج وملية التحجيل‬

‫‪3‬ج النقل الى احداثيا ناف ب العرض بحيث تكوو الزاوية التي في نقطة ابلل‬
‫منطبقة ولى الزاوية اليسرى السفلى لناف ب العرض‪ ،‬احداثيا النقل ي‪:‬‬
‫)‪( umin = 10 , vmin = 5‬‬
‫‪Tu = 10, Tv = 5‬‬

‫م الممك او نطبع المصفوفة العامة بشكل مباشر لتكوو النتيجة كما يلي‪:‬‬

‫‪264‬‬
‫اساسيات الرسم بالحاسوب‬

‫ الكود البرمجي لتنفي وملية التحويل م ناف ب المشهد الى ناف ب الع رض ت ل‬
‫وضع مللث في ناف ب العرض لغرض التوضيح ج‬

#include<iostream.h>
#include <conio.h>
#include <graphics.h>
void main()
{
float xwmin, xwmax, ywmax, ywmin;
float xvmin, xvmax, yvmax, yvmin;
float x[10], y[10], yv, xv, sx, sy;
int gd=DETECT,gm,i;
clrscr();
cout<< "\n enter window port coordinates:\n (xwmin, ywmin, xwmax,
ywmax): " ;
cin>> xwmin >> ywmin >> xwmax >> ywmax ;
cout<< "\n enter view port coordinates:\n (xvmin, yvmin, xvmax,
yvmax): " ;
cin>> xvmin >> yvmin >> xvmax >> yvmax ;
cout << "\n enter vertices for triangle: " ;
for( i=0; i < 3; i++)
cin >> x[i] >> y[i] ;

sx=((xvmax-xvmin) / (xwmax-xwmin)) ;
sy=((yvmax-yvmin) / (ywmax-xwmin)) ;

265
‫اساسيات الرسم بالحاسوب‬

initgraph(&gd, &gm,"c:\\turboc3\\bgi ");


outtextxy (80,30,"window port");
rectangle(xwmin, ywmin, xwmax, ywmax) ;
for(i=0; i <2; i++)
line(x[i],y[i],x[i+1],y[i+1]);

line(x[2],y[2],x[0],y[0]);
getch();
cleardevice();
for(i=0; i <3; i++)
{
x[i]=xvmin+((x[i]-xwmin)*sx);
y[i]=yvmin+((y[i]-ywmin)*sy);
}
outtextxy(150,10,"view port");
rectangle(xvmin, yvmin, xvmax, yvmax) ;
for(i=0; i <2; i++)
{
line(x[i], y[i], x[i+1], y[i+1]);
}
line(x[2],y[2],x[0],y[0]);
getch();
}

266
‫اساسيات الرسم بالحاسوب‬

‫الفصل التاسع‬
‫عمليات القطع‬
‫‪CLIPPING OPERATIONS‬‬

‫المقدمة‬ ‫‪9.1‬‬
‫المشهد يتكوو م كيانا والتي تحدد باستادال احداثيا الكوو المحاور ‪ x, y‬ج‬
‫وند ورض المشهد فانك م الممك او تعرض فقط الكيانا التي ي داقل ناف ب‬
‫تحدد ابعاد ا مسبقا تسمى ناف ب القطع ناف ب المشهد ‪ ،‬ويتل وطع كل شي قارج‬
‫ناف ب القطعج قوارزميا القطع تل تطوير ا لتحديد اي م النقاط والاطوط يج‬
‫او يتل وطعها واي منها يتل ورضهاج‬
‫قوارزمية القطع ي مجمووة م الاطوا التي تساود ولى تحديد ه اببزا‬
‫م الصور التي ي اما داقل او قارج حدود ناف ب القطع المحددب في ووت القطعج‬
‫او المفهول ابولي للقطع )‪ (clipping‬في رسول الحاسوب ي إلزالة الكيانا ‪،‬‬
‫الاطوط‪ ،‬او مقاطع الاطوط التي ي قارج ناف ب القطعج‬
‫بشكل وال‪ ،‬اي دالة او برنامج يعرف بز م الصورب بحيث تكوو داقل او قارج‬
‫مدى محدد م الفضا يشير الى قوارزمية القطع )‪ (clipping algorithm‬او‬
‫م الممك او نقول القطع فقطج المدى ال ي يستادل لعملية القطع للكياو يدوى ناف ب‬
‫القطع )‪(clipping window‬ج‬

‫القطع ‪Clipping‬‬ ‫‪9.2‬‬


‫القطع‪ ،‬بشكل وال‪ ،‬يشير الى ازالة بز م المشهدج تايل شاص يرى العالل م‬
‫قعل ناف ب المنزلج او بز المشهد ال ي ب يمك ورضه م الناف ب يدوى الجز‬
‫المقطوع او الجز المتروك قارباج في رسول الحاسوب‪ ،‬فاو الجز ال ي يترك‬
‫قارج ناف ب القطع يدوى الجز المقطوع والعملية التي تستادل لعرض الصورب في‬

‫‪267‬‬
‫اساسيات الرسم بالحاسوب‬

‫الناف ب تدوى وطعج بشكل وال‪ ،‬فاو ناك ودد م قوارزميا القطع تستادل بزالة‬
‫مكونا الصورب التي تقع قارج ناف ب القطعج‬
‫ناف ب القطع تحول مع محتوياتها الى ناف ب العرض ليتل ورضها ولى الشاشة كما بينا‬
‫في الفصل السابعج م الممك او تكوو ناف ب القطع باشكال ماتلفة‪ ،‬لك الشكل‬
‫المتعارف وليه و استادال ناف ب القطع ولى شكل ذو اربع اضعع كل ضلعي فيه‬
‫متوازية مستطيل او مربع ج بحظ الشكل ‪9.1‬ج‬

‫شكل ‪ :9.1‬ناف ب القطعج‬

‫التي تجرى اثنا وملية‬ ‫كلفة ومليا القطع وكفا تها تعتمد ولى ودد م العمليا‬
‫القطع العمليا الرياضية و ي حس ا ميتها وكلفتها‪:‬‬

‫ومليا التقسيلج‬ ‫‪1‬ج‬


‫ومليا الضربج‬ ‫‪2‬ج‬
‫وملية الطرحج‬ ‫‪3‬ج‬
‫وملية الجمعج‬ ‫‪4‬ج‬
‫ومليا المقارنةج‬ ‫‪5‬ج‬

‫‪268‬‬
‫اساسيات الرسم بالحاسوب‬

‫قطع النقطة ‪Point clipping‬‬ ‫‪9.3‬‬


‫نفرض او ناف ب القطع ي ولى شكل مستطيل معرف باحداثيا الزوايا السفلى‬
‫اليسرى والعليا اليمنى )‪ (xwmin, ywmin, xwmax, ywmax‬وفي مووع وياسي اي‬
‫في وسط الشاشة ‪ ،‬سوف يتل ورض النقطة )‪ P = (x, y‬في ناف ب القطع اذا‬
‫تحققت المساواب التالية‪:‬‬
‫‪xwmin ≤ x ≤ xwmax‬‬
‫‪ywmin ≤ y ≤ ywmax‬‬
‫حيث او اضعع ناف ب القطع م الممك او تكوو اما حدود ناف ب احداثيا العالل‬
‫ه المساواب ابربع لل يتحقع فاو‬ ‫الحقيقي‪ ،‬او حدود ناف ب المشهدج اذا اي واحدب م‬
‫النقطة تقطع قارج ناف ب القطع ب تعرض ج بالرغل م او تطبيقا وملية وطع‬
‫النقطة ي اول م ومليا وطع الاط او وطع متعدد ابضعع‪ ،‬لك بعض‬
‫التطبيقا ربما تتطل وطع النقاطج ملال‪ ،‬وطع النقاط م الممك او تطبع ولى‬
‫المشا د التي تتضم انفجارا او رغوب البحر التي تنم ج مع توزيعا قالة‬
‫ولى شكل نقاط في بعض مديا المشهدج‬

‫قطع الخط ‪Line Clipping‬‬ ‫‪9.4‬‬


‫في ومليا وطع الاط وليك او تعحظ الععوا المحتملة بي مواوع الاط ومدى‬
‫مستطيل القطع القياسي والموضحة في الشكل ‪9.2‬ج روتينا وطع الاط تحتوي‬
‫ودد م ابقتبارا منها‪:‬‬

‫م الممك اقتبار وطعة الاط‪ ،‬اذا كاو الاط يقع بالكامل داقل ناف ب القطعج‬ ‫‪1‬ج‬
‫م الممك اقتبار وطعة الاط‪ ،‬اذا كاو الاط يقع بالكامل قارج ناف ب‬ ‫‪2‬ج‬
‫القطعج‬
‫اقيرا‪ ،‬اذا لل يتحقع اي م ابقتباري في الاطوا السابقة اي او الاط‬ ‫‪3‬ج‬
‫ليس بالكامل داقل او قارج ناف ب القطع ‪ ،‬فه ا يعني او الاط يقطع حدود ناف ب‬

‫‪269‬‬
‫اساسيات الرسم بالحاسوب‬

‫القطع اي او بز منه داقل ناف ب القطع وبز اقر قارج ناف ب القطع ‪ ،‬ل لك‬
‫يج او تقول بحساب نقاط التقاطع مع واحد او اكلر م حدود ناف ب القطعج‬
‫تعالج الاطوط المستقيمة م قعل فحص نهايا الاطوطج الاط ال ي تكوو نهايتاه‬
‫ابثني داقل ناف ب القطع ملل الاط )‪ (p1, p2‬في الشكل ‪ 9.2‬فه ا سيكوو داقل‬
‫ناف ب القطع بالكامل ويتل ورضه بالكاملج اما اذا كانت نهايا الاط المستقيل ابثني‬
‫قارج حدود ناف ب القطع فه ا يعني او الاط قارج الناف ب بالكامل وب يتل ورضه‬
‫)‪ (p5, p6‬او م الممك او يكوو يقطع حدود ناف ب القطعج‬
‫ناك ثعث احتماب لوضعية الاط نسبة الى ناف ب القطع و و نفس ما ذكر اوعه‬
‫بتعبير ماتلف و ي‪:‬‬

‫قطوط ب ترى ‪ ،invisible lines‬اي انها تقع قارج ناف ب القطع وبالتالي‬ ‫‪1‬ج‬
‫ب تكوو مرئية ضم ابشكال المرئية في ناف ب القطع نهايتي الاط تكوو قارج‬
‫ناف ب القطع ‪ ،‬كما في الشكل ‪ 9.2‬الاط )‪(P9, P10‬ج‬
‫قطوط مرئية ‪ ،visible lines‬و ي الاطوط التي تكوو مرئية بالكامل‬ ‫‪2‬ج‬
‫حيث يقع كامل الاط المستقيل داقل ناف ب القطع نهايتي الاط تكوو داقل ناف ب‬
‫القطع ‪ ،‬كما في الشكل ‪ 9.2‬الاط )‪(P1, P2‬ج‬
‫قطوط مرئية بزئيا ‪ ،partially visible lines‬و ي الاطوط المستقيمة‬ ‫‪3‬ج‬
‫التي يرى بز منها‪ ،‬حيث يكوو ا الجز داقل ناف ب القطع بينما ب يرى الجز‬
‫ه الاطوط لكونه يقع قارج ناف ب القطع‪ ،‬في ه الحالة فاو ناك‬ ‫ابقر م‬
‫احتمابو لنهايا الاط ابول او تكوو احدى النهايتي داقل ناف ب القطع بينما‬
‫ابقرى قارج ناف ب القطع كما في الشكل ‪ 9.2‬الاط )‪ ،(P3, P4‬ابحتمال اللاني‬
‫او تكوو النهايتي قارج ناف ب القطع كما في الشكل ‪ 9.2‬الاط )‪((P7, P8‬ج‬
‫الاطوط المستقيمة التي تكوو احدى نهاياتها داقل ناف ب القطع والنهاية اللانية‬
‫قارج ناف ب القطع فاو ه الاطوط تقطع واحد م حدود ناف ب القطع بينما الاطوط‬
‫التي تقع نهاياتها قارج ناف ب القطع فانها تقطع اثناو م حدود ناف ب القطع‪ ،‬ووليه‬
‫‪270‬‬
‫اساسيات الرسم بالحاسوب‬

‫وفي كلتا الحالتي فاو ذلك يتطل حساب نقاط التقاطع بي الاط وحدود ناف ب القطع‬
‫ا الاط سيكوو داقل الناف ب ويتل ورضه‪ ،‬واي بز‬ ‫لتحديد اي اببزا م‬
‫يكوو قارج الناف ب وال ي ب يتل ورضهج‬

‫شكل ‪ :9.2‬وضع الاطوط نسبة الى ناف ب القطع وبل وبعد القطعج‬

‫ناك ودد م الاوارزميا الكفو ب التي تل اوتراحها التي تتصف بالسروة نظرا‬
‫لقلة الحسابا الرياضية ج سنحاول توضيح بعض ه الاوارزميا المهمة في ا‬
‫الفصل‪ ،‬بعض ه الاوارزميا لممت قاربيا للتعامل مع الصور ثنائية اببعاد‪،‬‬
‫بينما البعض ابقر م السهولة او يكيف للتطبيقا ثعثية اببعادج‬

‫قطع الخط المستقيم بطريقة كوهين سوثرالند‬ ‫‪9.5‬‬


‫‪Cohen-Sutherland Line Clipping‬‬
‫ه واحدب م اودل واشهر قوارزميا وطع الاطوط المستقيمةج بشكل وال‪ ،‬ه‬
‫الطريقة تسرع وملية معالجة وطع الاطوط وذلك بعمل اقتبار اولي للاطوط وال ي‬
‫يقلل ودد نقاط التقاطع التي م المفروض او تحس ج كل نقطة والتي تملل نهاية‬
‫قط في الصورب يسند لها شفرب ثنائية‪ ،‬تتكوو م اربع رموز احيانا تسمى شفرب‬
‫المنطقة ‪ ، region code‬حيث او ه الشفرب ستعرف مووع النقطة نهاية الاط‬
‫نسبة الى حدود مستطيل القطع ناف ب القطع ج المناطع ستضبط وتحدد نسبة الى‬

‫‪271‬‬
‫اساسيات الرسم بالحاسوب‬

‫حدود ناف ب القطع كما في الشكل ‪ 9.3‬يعحظ باننا كما لو وسعنا حدود ناف ب القطع‬
‫اي يتل تمديد ا وبالتالي سنصنع مجمووة م المناطع المجاورب لناف ب القطع ناف ب‬
‫القطع تكوو في المركز ج‬

‫شكل ‪ :9.3‬تحديد شفرب المناطع نسبة الى ناف ب القطعج‬

‫ه الشفرب يشير الى المووع النسبي له ه المنطقةج حيث او المواوع‬ ‫كل رمز م‬
‫تحس نسبة الى ناف ب القطع و ي اما او تكوو ولى يمي او يسار الناف ب‪ ،‬وك ا‬
‫اولى او اسفل الناف بج وند اسناد ويل له ه الرموز ويل ثنائية لفر او واحد فانك‬
‫ستتمك م تحديد مووع نهاية الاط نسبة لناف ب القطعج‬
‫سيتل تحديد ويل الرموز ابربع في الشفرب م اليمي الى اليسار وفقا لما يلي‪:‬‬

‫الرمز ابول م اليمي اذا كانت ويمته واحد فهو يملل المووع ابيم نسبة‬ ‫‪‬‬
‫لناف ب القطعج‬
‫الرمز اللاني اذا كانت ويمته واحد فهو يملل المووع ابيسر نسبة لناف ب القطعج‬ ‫‪‬‬
‫الرمز اللالث اذا كانت ويمته واحد فهو يملل المووع ابولى نسبة لناف ب القطعج‬ ‫‪‬‬
‫المووع الرابع وابقير اذا كانت ويمته واحد فهو يملل المووع ابسفل نسبة‬ ‫‪‬‬
‫لناف ب القطعج‬

‫‪272‬‬
‫اساسيات الرسم بالحاسوب‬

‫وليه فاو داقل الناف ب ستكوو ويمته )‪ (0000‬وذلك بنها المنطقة ابساس التي تقاس‬
‫باوي المناطع نسبة لهاج‬
‫بحظ المووع اسفل ناف ب القطع وولى يمينها ستكوو شفرته او ويمته ي )‪،(1001‬‬
‫وذلك بو الرمز ابول تكوو ويمته واحد اذا كاو المووع ولى يمي الناف ب‪ ،‬ونظرا‬
‫بو ا المووع ولى يمي الناف ب ل لك ستكوو ويمته واحد‪ ،‬الرمز اللاني تكوو ويمته‬
‫لفر بنه يملل المووع ابيسر‪ ،‬اما الرمز اللالث فهو يملل المووع اولى الناف ب ل ا‬
‫تكوو ويمته لفر‪ ،‬بينما الرمز ابقير واحد بنه يشير الى المووع اسفل الناف ب‬
‫وواوعا و اسفل الناف بج باقتصار فاو رموز الشفرب تملل كما في الشكل ‪9.4‬ج‬

‫شكل ‪ :9.4‬المواوع النسبية لرموز شفرب المناطعج‬

‫مالحظة‪ :‬ب يمك باي شكل م ابشكال او يكوو الرمزي ابول واللاني مساوياو‬
‫الى واحد بنفس الووت بو المووع اما يكوو يمي او يسار‪ ،‬وب يكوو ابثناو معا ‪،‬‬
‫نفس الشي بالنسبة للرمزي اللالث والرابع ب يمك او يكوو ابثناو واحد بنفس‬
‫الووت بو احد ل يملل ابولى وابقر يملل ابسفلج‬

‫مالحظة‪ :‬القيمة واحد في الشفرب بي رمز تعني او تلك النقطة ي في المووع‬


‫النسبي لناف ب القطع والتي يشير لها ا الرمز حس الشكل ‪9.4‬ج باعف ذلك او لل‬
‫تك في ذلك المووع النسبي تكوو ويمتها لفرج‬

‫الشفرب تسند الى نهايا الاطوط وذلك بمقارنة ويل احداثيا نهاية للاط )‪ (x, y‬مع‬
‫ويل احداثيا حدود ناف ب القطع او م معرفة المنطقة التي تقع فيها نهاية الاط‬

‫‪273‬‬
‫اساسيات الرسم بالحاسوب‬

‫واسناد الشفرب لها التي تملل تلك المنطقة حس الشكل ‪9.3‬ج فملع الرمز ابول تسند‬
‫له القيمة لفر اذا تحقع الشرط التالي‬
‫‪x < xwmin‬‬

‫نفس الشي بالنسبة للرموز اللعث ابقرى تضبط بالمقارنة المشابهةج بغراض‬
‫برمجية فاننا نحدد ويل الرموز باتباع الاطوتي التاليتي ‪:‬‬

‫‪1‬ج احس الفرق بي احداثيا نقطة نهاية الاط وحدود ناف ب القطعج تطرح‬
‫احداثيا النقطة م القيمة العليا المقابلة مرب وتطرح احداثيا النقطة م‬
‫القيمة الدنيا المقابلة اي ابحداثي السيني مع السيني والصادي مع الصادي ج‬
‫‪2‬ج استادل رمز ابشارب المرافع للقيمة الناتجة لكل وملية حساب فرق بي‬
‫احداثيا النقطة وحدود الناف ب لضبط الرمز المقابل في الشفربج‬
‫حيث اذا كانت اشارب ناتج وملية الطرح سالبة فاو القيمة المقابلة في شفرب‬
‫المناطع تكوو واحد وكما يلي ابتدا تكوو بميع الرموز ويمتها لفر ‪:‬‬
‫اذا )‪ (x – xwmin‬سالبة تضبط الرمز اللاني ولى واحدج‬
‫اذا )‪ (xwmax – x‬سالبة تضبط الرمز ابول ولى واحدج‬
‫اذا )‪ (y – ywmin‬سالبة تضبط الرمز اللالث ولى واحدج‬
‫اذا )‪ (ywmax – y‬سالبة تضبط الرمز الرابع ولى واحدج‬

‫مالحظة‪ :‬نقطة ابلل للحالة اوعه ي الزاوية اليسرى العلياج م الممك ضبط‬
‫ه القيل نسبة لنقطة ابلل في الحاب ابقرى بسهولةج‬

‫بعد او يتل تحديد شفرب المواوع او المناطع لكل نهايا الاطوط فسيكوو م الممك‬
‫تحديد اي م الاطوط و بالكامل داقل ناف ب القطع‪ ،‬او كامل الاط قارج ناف ب‬
‫القطع‪ ،‬او تلك التي تقطع حدود ناف ب القطعج وملية التحديد تتبع القواود التالية‪:‬‬
‫‪274‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪1‬ج اي قط تكوو شفرب المواوع لنهايتيه تساوي )‪ (0000‬فاو ا الاط يعتبر‬


‫بالكامل داقل ناف ب القطع وسيتل وبول ا الاط ليكوو مرئي في الناف بج‬
‫اي قط تكوو له القيمة واحد في نفس مووع الرمز في شفرب نهايتي الاط‪،‬‬ ‫‪2‬ج‬
‫فاو ا الاط يعتبر بالكامل قارج ناف ب القطع‪ ،‬وبالتالي فاو ا الاط يهمل وب‬
‫يرى في ناف ب القطعج فملع الاط ال ي شفرب احد نهايتيه ي )‪ (1001‬وشفرب نهايته‬
‫اللانية ي )‪ (0101‬سيتل ا ماله بنه قارج ناف ب القطع وذلك بو الرمز ابول‬
‫لنهايتي الاط ويمتهل واحد كع نهايتي الاط ي يمي ناف ب القطع‪ ،‬كما و واضح‬
‫م القيمة واحد في اول رمز ج‬
‫الطريقة التي م الممك او تستادل بقتبار الاطوط للقطع تنجز بعمليا‬ ‫‪3‬ج‬
‫منطقية ولى كع نهايتي الاطج فاذا كانت النتيجة ب تساوي )‪ (0000‬فاو كامل‬
‫الاط و قارج ناف ب القطعج‬

‫وملية فحص نهايا الاطوط منطقيا لغرض معرفة او الاط داقل او قارج ناف ب‬
‫القطع تتل باستادال الععوة المنطقية )‪ (And‬بي ويل النهايتي للاط‪ ،‬وبالتالي الناتج‬
‫ه الععوة سيحدد وضع الاط كما يلي‪:‬‬ ‫م‬

‫اذا كانت النهايتاو الفار فه ا الاط ب يفحص بنه بالكامل داقل ناف ب‬ ‫‪1‬ج‬
‫القطع‪ ،‬وسيرى بالكاملج‬
‫اذا كاو ناتج العملية المنطقية يحتوي ولى واحد في اي مووع م مواوع‬ ‫‪2‬ج‬
‫الشفرب ابربع يعني او القيمة ب تساوي لفر ‪ ،‬فه ا يعني او الاط بالكامل قارج‬
‫ناف ب القطع وبالتالي سوف ب يرى كلياج‬
‫اذا كاو ناتج العملية المنطقية لفر فاو الاط يقطع حدود ناف ب القطع‪،‬‬ ‫‪3‬ج‬
‫وبالتالي سيرى بشكل بزئيج‬

‫مثال‪ :‬اذا نهايتي الاط ما )‪ (0010), (0110‬فاو‬


‫‪0010 & 0110 = 0010‬‬

‫‪275‬‬
‫اساسيات الرسم بالحاسوب‬

‫و ا يعني او الاط بالكامل قارج ناف ب القطع بو القيمة الناتجة ب تساوي لفرج‬
‫مثال اقر‪ :‬اذا كانت نهايتي الاط ملع تساوياو )‪(1000), (0001‬‬
‫‪1000 & 0001 = 0000‬‬
‫نا الاط يقطع واحد او اكلر م حدود ناف ب القطع بو الناتج يساوي لفرج‬

‫مالحظة ‪ :‬احيانا م الممك او يكوو ناتج العملية المنطقية مساوي الى الصفر لك‬
‫الاط ب يقطع اي م حدود ناف ب القطع‪ ،‬ه الحالة غالبا تحدث وندما تكوو احدى‬
‫نهايتي الاط في الجان ابولى او ابسفل والنهاية اللانية تكوو في احد بوان‬
‫ناف ب القطع اليمنى او اليسرى الاط ‪ J-K‬في الشكل ‪ 9.5‬ج‬
‫بموب النواتج م العمليا المنطقية تتل ومليا القطع وتحديد اببزا التي تكوو‬
‫داقل ناف ب القطعج بالنسبة للاطوط التي تقطع حدود ناف ب القطع‪ ،‬يج او تحدد‬
‫احداثيا تقاطع الاط مع حدود ناف ب القطع ويتل ذلك باستادال معادلة الاط‬
‫المستقيل‪ ،‬وكما سنرى بحقاج للتوضيح اكلر سنستعي بملال لبياو كيفية تنفي‬
‫قوارزمية كو ي سوثربندج‬

‫مثال‪ :‬اوطع الاطوط في الشكل ‪9.5‬ج احداثيا ناف ب القطه ونهايا الاطوط ي‪:‬‬
‫‪Xmin = 40, xmax= 140,‬‬ ‫‪ymin= 60, ymax= 110‬‬
‫‪A(80, 80), B(120, 100), C(60, 80), D(60, 40), E(155, 100),‬‬
‫‪F(195, 30), G(90, 145), H(15, 70), J(155, 90), K(120, 20).‬‬

‫‪276‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :9.5‬مشهد يحتوي مجمووة قطوط مع بياو ناف ب القطعج‬

‫يفضل بداية تحديد الحدود العليا والدنيا بحداثيا ناف ب القطع لتسهيل وملية القطع‬
‫كما في الشكل ‪ ،9.6‬ك لك يتل تحديد الكود لكل نقطة او نهاية قط وللسهولة نحدد ا‬
‫ولى الشكل ‪ 9.7‬مباشربج‬

‫شكل ‪ :9.6‬تحديد الحدود الدنيا والعليا بحداثيا ناف ب القطعج‬

‫‪277‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :9.7‬تحديد الكودا اللنائية الاالة بنهايا الاطوطج‬

‫ابو يتل فحص الاطوط باستادال القواود التي اشير لها سابقا اوتمادا ولى كود‬
‫نهايا كل قط ‪ ،‬وكما يلي‬
‫النهايتاو الفار ل لك فاو كامل الاط يرى )‪Line (A-B : (0000 0000‬‬
‫)‪(visible‬‬
‫‪Line (C-D : (0000 & 1000) = 0000‬‬ ‫‪ (partially‬يرى بزئيا‬
‫)‪visible‬‬
‫)‪ (invisible‬ب يرى بالكامل ‪Line (E-F : (0001 & 1001) = 0001‬‬
‫‪ (partially‬يرى بزئيا ‪Line (G-H : (0100 & 1010) = 0000‬‬
‫)‪visible‬‬
‫‪ (partially‬يرى بزئيا ‪Line (J-K : (0001 & 1000) = 0000‬‬
‫)‪visible‬‬

‫ابو يكوو العمل فقط ولى الاطوط التي ترى بشكل بزئيج وببل ذلك نعمل‬
‫بدول كما يلي‬

‫‪278‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪line point‬‬ ‫‪x‬‬ ‫‪y Comparing results New – x New - y‬‬


‫‪C-D‬‬ ‫‪C‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D‬‬ ‫‪60‬‬ ‫‪40‬‬
‫‪G-H‬‬ ‫‪G‬‬ ‫‪90 145‬‬
‫‪H‬‬ ‫‪15‬‬ ‫‪70‬‬
‫‪J-K‬‬ ‫‪J 155‬‬ ‫‪90‬‬
‫‪K 120‬‬ ‫‪20‬‬

‫الناف ب وتكوو نتيجة المقارنة في‬ ‫تبدأ وملية المقارنة مع كل واحد م احداثيا‬
‫الجدول جج كما يلي‬

‫‪ ‬اوب‪ :‬المقارنة مع ويمة ‪ ،xmin =40‬المقارنة ستكوو بفحص ابحداثيا‬


‫للمحور ‪ x‬لجميع النقاط فيما اذا كانت الغر م ويمة ‪ xmin =40‬المقارنة ي‬
‫)‪(if x< 40‬‬
‫‪line point‬‬ ‫‪x‬‬ ‫‪y Comparing results New - x New - y‬‬
‫‪C-D‬‬ ‫‪C‬‬ ‫‪60‬‬ ‫‪80‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D‬‬ ‫‪60‬‬ ‫‪40‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪40‬‬
‫‪G-H‬‬ ‫‪G‬‬ ‫‪90 145‬‬ ‫‪NO‬‬ ‫‪90‬‬ ‫‪135‬‬
‫‪H‬‬ ‫‪15‬‬ ‫‪70‬‬ ‫‪YES‬‬
‫‪J-K‬‬ ‫‪J 155‬‬ ‫‪90‬‬ ‫‪No‬‬ ‫‪155‬‬ ‫‪90‬‬
‫‪K 120‬‬ ‫‪20‬‬ ‫‪No‬‬ ‫‪120‬‬ ‫‪20‬‬

‫نا يتل وطع ‪ x‬ال ي نتيجة مقارنته كانت ‪ YES‬جج بداية تصبح ويمة ‪ x‬مساوية لقيمة‬
‫)‪ (xmin‬وبموب القيمة الجديدب يتل حساب ويمة ‪ y‬التي تقابلهاججججججج اما باوي القيل‬
‫تبقى كما ي‬

‫‪279‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪New-x = 40‬‬
‫وببل حساب ويمة ‪ y‬نحس ما يلي للاط ‪G-H‬‬
‫‪Dx = x2 – x1 = 15 – 90 = -75‬‬
‫‪Dy = y2 – y1 = 70 – 145 = -75‬‬
‫ايجاد الميل‬
‫‪Slop (m) = dy / dx = -75 / -75 = 1‬‬
‫‪y=m.x+b = 1*x+b‬‬ ‫معادلة الاط المستقيل‬
‫حساب ويمة )‪ ،(b‬وذلك بتعويض ويمة النقطة )‪ (H‬في معادلة الاط المستقيل وم‬
‫الممك تعويض ويمة ‪ G‬ج‬
‫‪70 = 1 * 15 + b‬‬
‫‪b = 55‬‬
‫‪y = x + 55‬‬
‫ايجاد ويمة )‪ (y‬وندما تكوو ويمة ‪ x= 40‬باستادال معادلة الاط المستقيل‬
‫‪y = 40 * 1 + 55 = 95‬‬
‫اذو نقطة تقاطع الاط ‪ G-H‬مع حدود ناف ب القطع ‪ xmin‬ي )‪(40, 95‬‬
‫‪line point‬‬ ‫‪x‬‬ ‫‪y Comparing results New - x New - y‬‬
‫‪C-D‬‬ ‫‪C‬‬ ‫‪60‬‬ ‫‪80‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D‬‬ ‫‪60‬‬ ‫‪40‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪40‬‬
‫‪G-H‬‬ ‫‪G‬‬ ‫‪90 145‬‬ ‫‪NO‬‬ ‫‪90‬‬ ‫‪145‬‬
‫‪H‬‬ ‫‪15‬‬ ‫‪70‬‬ ‫‪YES‬‬ ‫‪40‬‬ ‫‪95‬‬
‫‪J-K‬‬ ‫‪J 155‬‬ ‫‪90‬‬ ‫‪No‬‬ ‫‪155‬‬ ‫‪90‬‬
‫‪K 120‬‬ ‫‪20‬‬ ‫‪No‬‬ ‫‪120‬‬ ‫‪20‬‬

‫ي المقارنة مع ‪xmax = 140‬‬ ‫المرحلة اللانية م المقارنا‬ ‫‪‬‬

‫‪280‬‬
‫اساسيات الرسم بالحاسوب‬

‫المقارنة ستكوو بفحص ابحداثيا للمحور ‪ x‬لجميع النقاط فيما اذا كانت اكبر م‬
‫ويمة ‪ xmax =140‬الحظ المقارنة تكون مع القيم الجديدة ججج‬
‫المقارنة ي )‪(if x> 140‬‬

‫‪line point‬‬ ‫‪x‬‬ ‫‪y Comparing results New - x New - y‬‬


‫‪C-D‬‬ ‫‪C‬‬ ‫‪60‬‬ ‫‪80‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D‬‬ ‫‪60‬‬ ‫‪40‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪40‬‬
‫‪G-H‬‬ ‫‪G‬‬ ‫‪90 145‬‬ ‫‪NO‬‬ ‫‪90‬‬ ‫‪145‬‬
‫‪H‬‬ ‫‪40‬‬ ‫‪95‬‬ ‫‪NO‬‬ ‫‪40‬‬ ‫‪95‬‬
‫‪J-K‬‬ ‫‪J 155‬‬ ‫‪90‬‬ ‫‪YES‬‬
‫‪K 120‬‬ ‫‪20‬‬ ‫‪NO‬‬ ‫‪120‬‬ ‫‪20‬‬

‫في ه الععوة فاو النقطة )‪ (J‬اكبر م ‪ 140‬ل ا فاو ويمة )‪ (x‬ستكوو مساوية‬
‫ه القيمة يتل حساب ويل ابحداثي )‪ (y‬لها وكما يلي‪:‬‬ ‫الى ‪ ،140‬وحس‬
‫‪Dx = x2 – x1 = 120 – 155 = -35‬‬
‫‪Dy = y2 – y1 = 20 – 90 = -70‬‬
‫‪Slop (m) = dy / dx = -70 / -35 = 2‬‬
‫‪y=m.x+b = 2*x+b‬‬
‫نعوض و ويمة )‪ (J‬في معادلة الاط المستقيل بيجاد ويمة )‪(b‬‬
‫‪90 = 2 * 155 + b‬‬
‫‪b = -220‬‬
‫‪y = 2 * x - 220‬‬
‫وندما تكوو ويمة ‪ x= 140‬فاو النقطة )‪ (J‬ستكوو ويمة )‪ (y‬لها‬
‫‪y = 2 * 140 - 220 = 60‬‬

‫‪281‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪line point‬‬ ‫‪x‬‬ ‫‪y Comparing results New - x New - y‬‬


‫‪C-D‬‬ ‫‪C‬‬ ‫‪60‬‬ ‫‪80‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D‬‬ ‫‪60‬‬ ‫‪40‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪40‬‬
‫‪G-H‬‬ ‫‪G‬‬ ‫‪90 145‬‬ ‫‪NO‬‬ ‫‪90‬‬ ‫‪145‬‬
‫‪H‬‬ ‫‪40‬‬ ‫‪95‬‬ ‫‪NO‬‬ ‫‪40‬‬ ‫‪95‬‬
‫‪J-K‬‬ ‫‪J 140‬‬ ‫‪60‬‬ ‫‪YES‬‬ ‫‪140‬‬ ‫‪60‬‬
‫‪K 120‬‬ ‫‪20‬‬ ‫‪NO‬‬ ‫‪120‬‬ ‫‪20‬‬

‫المرحلة اللاللة المقارنة مع ‪ymin = 60‬‬ ‫‪‬‬


‫المقارنة ستكوو بفحص ابحداثيا الجديدب للمحور ‪ y‬لجميع النقاط فيما اذا كانت‬
‫الغر م ويمة ‪ ymin = 60‬المقارنة ي )‪(if y < 60‬‬

‫‪line point‬‬ ‫‪x‬‬ ‫‪y Comparing results New - x New - y‬‬


‫‪C-D‬‬ ‫‪C‬‬ ‫‪60‬‬ ‫‪80‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D‬‬ ‫‪60‬‬ ‫‪40‬‬ ‫‪YES‬‬
‫‪G-H‬‬ ‫‪G‬‬ ‫‪90 145‬‬ ‫‪NO‬‬ ‫‪90‬‬ ‫‪145‬‬
‫‪H‬‬ ‫‪40‬‬ ‫‪95‬‬ ‫‪NO‬‬ ‫‪40‬‬ ‫‪95‬‬
‫‪J-K‬‬ ‫‪J 140‬‬ ‫‪60‬‬ ‫‪NO‬‬ ‫‪140‬‬ ‫‪60‬‬
‫‪K 120‬‬ ‫‪20‬‬ ‫‪YES‬‬

‫في ه الحالة فاو النقطتي )‪ (D, K‬تحتاج الى وطع بحيث تكوو ويمة )‪(y=60‬‬
‫لكليهما‪ ،‬في ادناه حساب ويل ‪ x‬لكل منهل كما وملنا سابقا‬
‫اوب‪ :‬النقطة ‪ D‬ضم الاط )‪(C-D‬‬
‫‪Dx= 60 – 60 = 0‬‬

‫‪282‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪Dy = 40 – 80 = -40‬‬
‫بحظ نا بما او ‪ Dx = 0‬وليه فاو ويمة ‪ x‬ستبقى بدوو تغير وتكوو‬
‫)‪D = (60, 60‬‬
‫ثانيا‪ :‬النقطة ‪ K‬ضم الاط )‪(J-K‬‬
‫‪Dx= 120 – 140 = -20‬‬
‫‪Dy = 20 – 60 = -40‬‬
‫‪m = Dy/Dx = -40 / -20 = 2‬‬
‫‪y = m . x+ b‬‬
‫بحظ نا بحابة لحساب معادلة الاط حيث سبع واو تل حسابها في الاطوب‬
‫السابقة و ي‬
‫‪y = 2 * x – 220‬‬
‫نعوض و ويمة ‪y = 60‬‬
‫‪60 = 2 * x - 220‬‬
‫‪x = 140‬‬

‫‪line point‬‬ ‫‪x‬‬ ‫‪y Comparing results New - x New - y‬‬


‫‪C-D‬‬ ‫‪C‬‬ ‫‪60‬‬ ‫‪80‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D‬‬ ‫‪60‬‬ ‫‪40‬‬ ‫‪YES‬‬ ‫‪60‬‬ ‫‪60‬‬
‫‪G-H‬‬ ‫‪G‬‬ ‫‪90 145‬‬ ‫‪NO‬‬ ‫‪90‬‬ ‫‪145‬‬
‫‪H‬‬ ‫‪40 100‬‬ ‫‪NO‬‬ ‫‪40‬‬ ‫‪100‬‬
‫‪J-K‬‬ ‫‪J 140‬‬ ‫‪60‬‬ ‫‪NO‬‬ ‫‪140‬‬ ‫‪60‬‬
‫‪K 120‬‬ ‫‪20‬‬ ‫‪YES‬‬ ‫‪140‬‬ ‫‪60‬‬

‫بحظ م القيل اوعه او ويمة النقطة )‪ (J‬وويمة النقطة )‪ (K‬متساويتاو و ا يعني‬


‫او الاط تل وطعه بالكامل ليكوو نقطة واحدب ا يعني او الاط ‪ J-K‬ب يرى ج‬

‫‪283‬‬
‫اساسيات الرسم بالحاسوب‬

‫المرحلة ابقيرب ي المقارنة مع ‪ymax = 110‬‬ ‫‪‬‬


‫المقارنة ستكوو بفحص ابحداثيا الجديدب للمحور ‪ y‬لجميع النقاط فيما اذا كانت‬
‫اكبر م ويمة ‪ ymax = 110‬المقارنة ي )‪(if y > 110‬‬

‫‪line point‬‬ ‫‪x‬‬ ‫‪y Comparing results New - x New - y‬‬


‫‪C-D‬‬ ‫‪C 60‬‬ ‫‪80‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D 60‬‬ ‫‪60‬‬ ‫‪NO‬‬ ‫‪60‬‬ ‫‪60‬‬
‫‪G-H‬‬ ‫‪G 90 145‬‬ ‫‪YES‬‬
‫‪H 40‬‬ ‫‪95‬‬ ‫‪NO‬‬ ‫‪40‬‬ ‫‪95‬‬

‫ويمة ‪ x‬التي تقابلها‬


‫اذو ويمة ‪ y‬للاط ‪ G-H‬ستكوو مساوية الى ‪ 110‬ونحس‬
‫وكما يلي‬
‫‪Dx= x2 - x1 = 40 – 90 = -50‬‬
‫‪Dy = y2 – y1 = 95 – 145 = -50‬‬
‫‪Slop = dy / dx = -50 / -50 = 1‬‬
‫‪y = m.x + b‬‬
‫‪y=x+b‬‬
‫‪95 = 40 + b‬‬
‫‪b = 55‬‬
‫‪y = x + 55‬‬
‫وندما تكوو ‪y = 110‬‬
‫‪110 = x + 55‬‬
‫‪x = 55‬‬
‫اذو ستكوو نقطة التقاطع ي )‪G = ( 55, 110‬‬

‫‪284‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪line point‬‬ ‫‪x‬‬ ‫‪y‬‬ ‫‪Comparing New - New -‬‬


‫‪results‬‬ ‫‪x‬‬ ‫‪y‬‬
‫‪C-D‬‬ ‫‪C 60‬‬ ‫‪80‬‬ ‫‪No‬‬ ‫‪60‬‬ ‫‪80‬‬
‫‪D 60‬‬ ‫‪40‬‬ ‫‪No‬‬ ‫‪60‬‬ ‫‪60‬‬
‫‪G-H‬‬ ‫‪G 90 145‬‬ ‫‪Yes‬‬ ‫‪55‬‬ ‫‪110‬‬
‫‪H 40‬‬ ‫‪95‬‬ ‫‪No‬‬ ‫‪40‬‬ ‫‪100‬‬

‫بعد انجاز المقارنا مع حدود الناف ب األربع جج نعود لفحص النقاط الجديدب وذلك م‬
‫قعل استاراج الكودا لها وفقا لقيمها الجديدب وفحصها كما وملنا في اول قطوب‪,‬‬
‫فاذا وبدنا قطوط تحتاج الى وطع اضافي نقول ب لك واذا لل نجد فنعتبر النقاط التي‬
‫وللنا لها نهائية ويتل رسل الاطوط بموببهاج‬
‫ترى ‪Line C-D = 0000 , 0000‬‬
‫ترى ‪Line G-H = 0000, 0000‬‬
‫النتيجة ستكوو كما في الشكل ‪9.10‬‬

‫شكل ‪ :9.10‬نتيجة القطع النهائيةج‬

‫الكود البرمجي لتنفي قوارزمية كو ي سوثربند لقطع الاط ي‬

‫>‪#include<conio.h‬‬
‫>‪#include<iostream.h‬‬

‫‪285‬‬
‫اساسيات الرسم بالحاسوب‬

#include<graphics.h>

static int RIGHT=1, LEFT=2, TOP=4, BOTTOM=8, xl, yl, xh, yh;

int getcode(int x,int y){


int code = 0;
//Perform Bitwise OR to get outcode
if (y > yh) code | = TOP;
if (y < yl) code | = BOTTOM;
if (x < xl) code | = LEFT;
if (x > xh) code | = RIGHT;
return code;
}

void main()
{
int gdriver = DETECT,gmode;
initgraph(&gdriver,&gmode,"C:\\TC\\BGI");
setcolor (BLUE);
cout<<"Enter bottom left and top right co-ordinates of window:";
cin>>xl>>yl>>xh>>yh;
rectangle (xl,yl,xh,yh);
int x1,y1,x2,y2;
cout<<"Enter the endpoints of the line: ";
cin>>x1>>y1>>x2>>y2;

286
‫اساسيات الرسم بالحاسوب‬

line(x1,y1,x2,y2);
getch();

int outcode1=getcode(x1,y1), outcode2=getcode(x2,y2);


int accept = 0; //‫اتااذ ورار ل يرسل الاط‬
while(1){
float m =(float)(y2-y1)/(x2-x1);
//‫كع الاطي داقل جج يقبل الاط‬
if (outcode1==0 && outcode2==0){
accept = 1;
break;
}
// ‫وملية المقارنة المنطقية لنهايتي الاط اذا بتساوي لفر فاو الاط قارج ويهمل‬
else
if ((outcode1 & outcode2)!=0){
break;
}else{
int x,y;
int temp;
//‫ او لل تك بالداقل احس نقطة التقاطع‬,‫ في الداقل‬point1 ‫تحديد‬
if (outcode1==0)
temp = outcode2;
else
temp = outcode1;
// ‫الاط يقطع الحافة العليا‬
if (temp & TOP){

287
‫اساسيات الرسم بالحاسوب‬

x = x1+ (yh-y1)/m;
y = yh;
}
else
if (temp & BOTTOM){ //‫وطع الاط نسبة الى الحافة السفلى‬
x = x1+ (yl-y1)/m;
y = yl;
}else
if(temp & LEFT){ //‫وطع الاط نسبة للحافة اليسرى‬
x = xl;
y = y1+ m*(xl-x1);
}else
if(temp & RIGHT){ //‫وطع الاط نسبة للحافة اليمنى‬
x = xh;
y = y1+ m*(xh-x1);
}
// ‫ وبدلها باحداثياتها‬temp ‫افحص اي نقطة تل اقتيار ا بداية ولى انها‬
if(temp == outcode1){
x1 = x;
y1 = y;
outcode1 = getcode(x1,y1);
}else{
x2 = x;
y2 = y;
outcode2 = getcode(x2,y2);

288
‫اساسيات الرسم بالحاسوب‬

‫}‬
‫}‬
‫}‬
‫;)‪setcolor(WHITE‬‬
‫;"‪cout<<"After clipping:‬‬
‫)‪if(accept‬‬
‫;)‪line(x1,y1,x2,y2‬‬
‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫}‬
‫‪Download Source Code Program List‬‬

‫خوارزمية القطع بطريقة ‪Liang-Barsky‬‬ ‫‪9.6‬‬

‫وتسمى احيانا طريقة القطع وطع الاط اوتمادا ولى الحدود او المعامع‬
‫)‪(Parametric line clipping‬ج تعتبر ه الاوارزمية اكفأ م قوارزمية‬
‫كو ي سوثربندج‬
‫ه الاوارزمية ي حساب‬ ‫كما في قوارزمية سوثربند فاو الهدف ابساس م‬
‫نقاط القطع )‪ (x, y‬لاط احداثياته ي ))‪ ((x1, y1), (x2, y2‬مع حدود ناف ب‬
‫القطع واوعا في ه الاوارزمية سيتل حساب نهايا الاط ال ي يقع ضم ناف ب‬
‫القطع‪ ،‬وبالتالي سيعاد رسل الاط ال ي في داقل ناف ب القطع وتهمل اببزا‬
‫ابقرى م الاط التي ي قارج الناف ب ج‬
‫بداية‪ ،‬او الاط المستقيل ال ي نهاياتاه ي ))‪ ((x1, y1), (x2, y2‬تقطع حدود ناف ب‬
‫القطع في النقطة )‪ ,(x, y‬نقطة القطع يتل حسابها وفقا له ه الاوارزمية باستادال‬
‫معادلة المعامع )‪ (parametric line equation‬كما يلي‪:‬‬

‫‪289‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪x = x1 + t x‬‬ ‫‪………. 1‬‬


‫‪y = y1 + t y‬‬ ‫‪………. 2‬‬
‫حيث او‬
‫‪x = x2 – x1‬‬
‫‪y = y2 – y1‬‬
‫‪t‬‬
‫وفقا للشكل ‪ 9.6‬فاو م المنطقي او يكوو مدى نقطة التقاطع بي قط مع اي حد‬
‫م حدود الناف ب كما يلي‬
‫‪xmin ≤ x ≤ xmax‬‬
‫‪ymin ≤ y ≤ ymax‬‬

‫لو ووضنا و ويل )‪ (x, y‬بما يساويها م ويل وفقا للععوا )‪ (1, 2‬اوعه فسيكوو‬
‫الناتج و‬
‫‪xmin ≤ x1 + t x ≤ xmax‬‬
‫‪ymin ≤ y1 + t y ≤ ymax‬‬

‫م الممك اوادب ترتيبها لتكوو‬


‫‪-t∆x‬‬ ‫≤‬ ‫)‪(x1 - xmin‬‬ ‫‪…………… 3‬‬
‫‪t∆x‬‬ ‫≤‬ ‫)‪(xmax - x1‬‬ ‫‪…………… 4‬‬
‫‪-t∆y‬‬ ‫≤‬ ‫)‪(y1 - ymin‬‬ ‫‪…………… 5‬‬
‫‪t∆y‬‬ ‫≤‬ ‫)‪(ymax - y1‬‬ ‫‪….………… 6‬‬

‫بشكل وال اذا كانت‪:‬‬


‫‪t * p k ≤ qk‬‬ ‫‪……….. 7‬‬
‫‪k = 1, 2, 3, 4‬‬
‫‪290‬‬
‫اساسيات الرسم بالحاسوب‬

‫وبالتالي فاو‬
‫‪t = qk / pk‬‬
‫بمقارنة الععوا )‪ (3, 4, 5, 6‬مع الععوة )‪ (7‬سنحصل ولى‪:‬‬

‫‪P1 = -‬‬ ‫‪x‬‬ ‫…‬ ‫‪q1 = x1 – xwmin‬‬ ‫الحد ابيسر للناف ب‬


‫= ‪P2‬‬ ‫‪x‬‬ ‫…‬ ‫‪q2 = xwmax – x1‬‬ ‫الحد ابيم للناف ب‬
‫‪P3 = -‬‬ ‫‪y‬‬ ‫…‬ ‫‪q3 = y1 – ywmin‬‬ ‫الحد ابسفل للناف ب‬
‫= ‪P4‬‬ ‫‪y‬‬ ‫…‬ ‫‪q4 = ywmax – y1‬‬ ‫الحد ابولى للناف ب‬

‫بموب نواتج ه الععوا سيتل تحديد طبيعة الاط او مووعه نسبة الى ناف ب القطع‪,‬‬
‫تحليل النتائج يفضي الى‪:‬‬

‫‪ ‬اذا كاو ) ‪ (pk = 0‬فاو الاط يوازي واحد م حواف ناف ب القطعج‬
‫اذا كاو )‪ (qk < 0‬لنفس ويمة ‪ k‬فاو الاط قارج ناف ب القطع‪ ,‬ل ا‬ ‫‪‬‬
‫يهملج‬
‫اذا كاو )‪ (qk ≥ 0‬فاو الاط داقل ناف ب القطعج‬ ‫‪‬‬
‫م‬ ‫‪ ‬اذا كاو )‪ (pk < 0‬ا يعني او الاط يبدأ قارج ه الحدود‪ ،‬ي‬
‫الاارج الى الداقل دقول ج‬

‫م الداقل الى الاارج‬ ‫ا يعني او الاط ي‬ ‫‪ ‬اذا كانت )‪(pk > 0‬‬
‫قروج ج‬
‫‪ ‬اذا كانت ‪ t1 > t2‬فاو الاط بالكامل و قارج ناف ب القطعج‬

‫مالحظة‪ :‬اذا كانت وطعة قط مستقيل داقل ناف ب القطع‪ ،‬فاو متوالية م ومليا‬
‫القطع المحدودب ستحدث دقول‪ ،‬دقول‪ ،‬قروج‪ ،‬قروج ج بحظ الشكل‪9.11‬ج‬

‫‪291‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :9.11‬شكل توضيحي لمصطلح دقول وقروج الاط المستقيلج‬

‫‪ ،t‬ل ا فاو ) ‪(tmin = 0, tmax = 1‬ج‬ ‫كما سبع ووضحنا فاو ويمة‬
‫تحس ويمة ‪ t‬كما سبع واشرنا باستادال الععوة ‪ t = qk / pk‬لكل حاب ‪k‬‬
‫ابربعج‬
‫بالتاكيد ستكوو ناك ويمة وظمى وويمة لغرى للمتغير ‪ ،t‬القيمة العظمى ي التي‬
‫تحس باستادال )‪ (xmax, or ymax‬اما القيمة الصغرى فهي التي تحس‬
‫باستادال )‪(xmin, or ymin‬ج‬
‫تهمل ويمة ‪ t‬اذا كانت ) ‪ ،( t < tmin or t > tmax‬باعف ذلك يتل تصنيف ويمة ‪t‬‬
‫ولى انها دقول او قروجج اذا كانت )‪ (tmin > 0‬فاو ذلك يعني دقول‪ ،‬واذا كاو‬
‫)‪ (tmax > 0‬فاو ذلك يعني قروجج‬
‫اذا كانت ويمة ) ‪ ( tmin < tmax‬وند ا سيتل رسل الاط م ‪:‬‬
‫)’‪(x1’, y1’) to (x2’, y2‬‬
‫و ما نقاط التقاطع مع حدود ناف ب القطع كل نقطة تملل بديل بحدى النهايا ‪،‬‬
‫ويتل ايجاد ويمها كما يلي‬
‫· ‪( x1 + Δx · tmin, y1 + Δy · tmin ) to ( x1 + Δx · tmax, y1 + Δy‬‬
‫) ‪tmax‬‬
‫باعفه ب يوبد قطج‬
‫‪292‬‬
‫اساسيات الرسم بالحاسوب‬

‫لتوضيح الفكرب بشكل اكبر سنستعي بملالي ج‬


‫مثال‪ :‬اوطع الاط في الشكل ‪9.12‬‬

‫شكل ‪ :9.12‬ناف ب وطع مع قط مطلوب وطعه بطريقة بنك بارسكيج‬

‫‪293‬‬
‫اساسيات الرسم بالحاسوب‬

‫ابو لدينا ما يلي‬

‫( = ‪p2 – p1‬‬ ‫)‪= (15+5, 9-3) = (20, 6‬‬

‫نظرا الى او )‪ (tmin < tmax‬فاو ناك وطعة قطج‬


‫يتل رسل قط مستقيل بالتعويض و ويمة ‪ t‬في الععوة التالية وال ي يملل وطعة الاط‬
‫التي سترى داقل ناف ب القطع‪:‬‬
‫· ‪( x1 + Δx · tmin, y1 + Δy · tmin ) to ( x1 + Δx · tmax, y1 + Δy‬‬
‫) ‪tmax‬‬

‫‪(-5+(20) . (1/4) ) , (3+(6) . (1/4)) to (-5+(20) . (3/4) ) , (3+(6) .‬‬


‫= ))‪(3/4‬‬
‫)‪(0, 9/2) to (10, 15/2‬‬

‫مثال اقر‪ :‬لنحاول ابرا وملية وطع الاط في الشكل ‪9.13‬‬


‫‪294‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :9.13‬ناف ب وطع مع قط لتنفي وملية القطع بطريقة بنكج‬

‫‪295‬‬
‫اساسيات الرسم بالحاسوب‬

‫ابو لدينا ما يلي‬

p2 – p1 = ( = (2+8, 14-2) = (10, 12)

‫ ل لك سوف ب يكوو ناك قط ليرسل يعتبر الاط‬، (tmin > tmax) ‫بحظ نا او‬
‫قارج ناف ب القطع ج‬

‫ الكود البرمجي لتنفي قوارزمية لنك بارسكي لقطع الاطوطج‬

#include<iostream.h>
#include<conio.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
initgraph(&gd, &gm,"C:\\TC\\BGI");
int x1, y1, x2, y2, xmax, xmin, ymax, ymin ;
int xx1, yy1, xx2, yy2, dx, dy, i ;

296
‫اساسيات الرسم بالحاسوب‬

int p[4],q[4];
float t1, t2, t[4] ;
cout<<"Enter the lower co-ordinates of window";
cin>> xmin >> ymin;
cout<<"Enter the upper co-ordinates of window";
cin>> xmax >> ymax;
setcolor (RED);
rectangle (xmin, ymin, xmax, ymax);
cout<<"Enter x1:";
cin>> x1;
cout<<"Enter y1:";
cin>> y1;
cout<<"Enter x2:";
cin>> x2;
cout<<"Enter y2:";
cin>> y2;
line(x1, y1, x2, y2);
dx = x2-x1;
dy = y2-y1;
p[0] = - dx;
p[1] = dx;
p[2] = - dy;
p[3] = dy;
q[0] = x1 - xmin;
q[1] = xmax - x1;
q[2] = y1 - ymin;

297
‫اساسيات الرسم بالحاسوب‬

q[3] = ymax - y1;


for (i=0 ; i < 4 ; i++){
if (p[i]!=0){
t[i] = (float) q[i] / p[i];
}
else
if(p[i] == 0 && q[i] < 0)
cout<<"line completely outside the window";
else
if (p[i] == 0 && q[i] >= 0)
cout<<"line completely inside the window";
}
if (t[0] > t[2]){
t1=t[0];
}
else{
t1 = t[2];
}
if (t[1] < t[3]){
t2 = t[1];
}
else{
t2 = t[3];
}
if (t1 < t2){

298
‫اساسيات الرسم بالحاسوب‬

xx1 = x1 + t1*dx;
xx2 = x1 + t2*dx;
yy1 = y1 + t1*dy;
yy2 = y1 + t2*dy;
cout<<"line after clipping:";
setcolor (WHITE);
line (xx1, yy1, xx2, yy2);
}
else{
cout<<"line lies out of the window";
}
getch();
}

299
‫اساسيات الرسم بالحاسوب‬

‫‪300‬‬
‫اساسيات الرسم بالحاسوب‬

‫الفصل العاشر‬
‫المنحنيات‬
‫‪The Curves‬‬

‫‪ 10.1‬المقدمة‬
‫فااي رسااوم الحاسااوب تباارز الحاجااة احيانااا الااى رساام كيانااات بااانواع مختلفااة علااى‬
‫الشاشة‪ .‬الكيانات هي ليست مستوية كل االوقات وهناك حاجاة لرسام منحنياات عادد‬
‫من المرات الكمال رسم الكيان‪.‬‬
‫المنحني هو مجموعة كبيرة جدا من النقاط‪ .‬كل نقطة لها اثنان من النقاط المجااورة‬
‫ماعدا نقاط النهاية‪.‬‬
‫بشاااكل عاااام تمثيااال االشاااكال لااا اساااتخدامان مختلفاااان‪ ،‬اساااتخدام تحليلاااي واساااتخدام‬
‫صناعي‪ .‬التمثيالت تستخدم للتحليل لوصف االشكال التي من الممكان قياساها‪ ،‬تماماا‬
‫مثل عملية تحويل المنحناي الاى مجموعوة مون نقواط البيانوات‪ ،‬الساطوح مان الممكان‬
‫ايضااا ان تحااول الااى صاافات او خصااائق قابلااة للقياااس لاابعض الكيانااات الحقيقيااة‪.‬‬
‫متطلبات المستخدم والحاسوب الجمع بين مقترحات عدد من الصفات او الخصائق‬
‫لكااي يمكاان انجاااز التمثياال‪ .‬فااي هااذا الفصاال ساانتطرق لاابعض الصاافات المهمااة التااي‬
‫تسااتخدم لتصااميم المنحينااات وطاارق رساام ‪ ،‬مااع االشااارة الااى ان الموضااوع واسااع‬
‫واليمكن اجمال في فصل واحد لذلك حاولنا جهد االمكان التطرق الى النقاط المهماة‬
‫فااي هااذا الموضااوع وماان رعااب التوسااع عليا مراجعااة مصااادر مختصااة فااي مجااال‬
‫رسوم المنحنيات‪.‬‬
‫في هذا الفصل سانركز علاى ناوعين مان المنحياات (طريقاة رسام المنحنياات) وهاي‬
‫منحيات بيزر ومنحني الشرائح‪.‬‬

‫‪301‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ 10.2‬متعدد الحدود ‪A polynomial‬‬


‫ويل‬ ‫مرفووة الى ووب اس ومضروبة في معامع‬ ‫و مجمووة م المتغيرا‬
‫ثابتة ج‬
‫‪= a0 + a1 x + a2 x2 + … + an xn‬‬

‫او دربة )‪ (degree‬متعدد الحدود ي اولى ووب او اس لمتغير متعدد الحدودج‬


‫ناك تسميا قالة لمتعددا الحدود وفقا لدربتها فملع‪:‬‬
‫‪ ‬قطي ‪Linear‬‬
‫‪f(x) = x +1‬‬
‫‪ ‬تربيعي ‪Quadratic‬‬
‫‪g(x) = x2 + x + 1‬‬
‫‪ ‬تكعيبي ‪Cubic‬‬
‫‪h(x) = x3 + x2 + x +1‬‬
‫‪ ‬الدربة الرابعة ‪Quartic‬‬
‫‪k(x) = x4 + x3 + x2 + x + 1‬‬

‫في متعدد الحدود فاو زيادب الدربة تعني تغيرا اكلر بتجاه المنحني ال ي سيرسل‬
‫م تلك المعادلة‪ ،‬بحظ الشكل ‪10.1‬ج‬
‫في الشكل ‪ 10.1‬فاو الشكل )‪ (A‬و تمليل قطي وب يوبد به تغيير‪ ،‬فهو يسير‬
‫باتجاه واحد تغيير ابتجاه ثابت ج بينما الشكل )‪ (B‬فيه اثناو م المتجها ‪،‬‬
‫المنحني يهبط لعسفل ثل يرتفع لعولى ويولد تقعر واحد اي يحتوي ولى مكاو‬
‫واحد لتغيير ابتجاه ‪ ،‬و و يملل معادلة متعدد الحدود التربيعيج‬

‫‪302‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :10.1‬تغير انحنا الاطوط وفقا لدربة المنحنيج‬

‫الشكل )‪ (C‬فيه ثعث متجها و و يملل معادلة متعدد الحدود التكعيبي فيه مووعي‬
‫لتغيير ابتجاه ‪ ،‬واقيرا الشكل )‪ (D‬يملل معادلة متعدد الحدود م الدربة الرابعة‬
‫وفيها اربع متجها ويحتوي ولى ثعث مواوع لتغيير ابتجاهج بحظ او كل تقعر او‬
‫تحدب في المنحني يعني ناك تغيير في ابتجاه متجهاو وم الممك او تشترك‬
‫التحدبا او التقعرا المتجاورب بواحد او اكلر م المتجها ج نستنتج م ذلك باو‬
‫ودد مواوع تغيير ابتجاه مجموع التقعر و التحدب في المنحنيا تساوي دربة‬
‫معادلة متعدد الحدود – ‪ 1‬ج‬

‫‪ 10.3‬معادلة المعامالت ‪Parametric Equation‬‬


‫تعتبر معادلة المعامع ابساس ال ي نستند له في اشتقاق منحني بيزر او الشرائح‪،‬‬
‫ل لك سنركز نا ولى معرفة ه المعادلة وكيفية الحصول وليهاج‬

‫‪303‬‬
‫اساسيات الرسم بالحاسوب‬

‫لننظر الى الشكل ‪ 10.2‬ونبدا بالاط ال ي نهايتيه ي ))‪,(A(x1, y1), B(x2, y2‬‬
‫وسنستادل طرق المتجها للحصول ولى معادلة المعامع ج‬

‫شكل ‪ :10.2‬قط مستقيل متجهج‬

‫( و ما متجهاو متوازياو كما في الشكل ‪10.3‬ج‬ ‫‪,‬‬ ‫)‬ ‫بداية بحظ المتجها‬

‫شكل ‪ :10.3‬توضيح المتجها المتوازيةج‬

‫وليه فاو‬
‫‪AP = t . AB‬‬

‫‪304‬‬
‫اساسيات الرسم بالحاسوب‬

‫حيث او )‪ (t‬و معامل وددي‪ ،‬وبو ‪ AP‬الغر م ‪ AB‬فاو ناك بعض التقلص‬
‫او الضغط في الطرف ابيم م المعادلة و ا يعني او ويمة ‪ t‬ستتراوح بي‬
‫الصفر والواحدج‬
‫‪AP = t . AB‬‬ ‫‪0‬‬ ‫‪t‬‬

‫لننظر الى مكونا كل م ‪ AP‬و ‪ AB‬وسوف نستادل النقطة ‪ P‬بشتقاق معادلة‬


‫المعامع بو النقطة ‪ P‬ي بدبلة )‪ (x, y‬والمعادلة ستكوو بدبلة )‪(x, y‬ج‬
‫او مكونا ‪ AP‬ي >‪ <x-x1, y-y1‬بينما مكونا ‪ AB‬ي >‪<x2-x1, y2-y1‬‬
‫اذو‬
‫>‪<x - x1, y - y1> = t <x2 - x1, y2 - y1‬‬
‫> ‪<x - x1, y - y1> = < t x2 – t x1 , t y2 – t y1‬‬

‫لعنتقال م معادلة المتجها الى معادلة المعامع ‪ ،‬كل ما ولينا ومله و فصل‬
‫ه المكونا وم ثل تبسيط الععوا وكما يلي‬
‫‪x – x1 = t x2 – t x1‬‬
‫‪x= x1 – t x1 + t x2‬‬
‫‪x = (1 - t) x1 + t x2‬‬

‫حيث او كل م )‪ ((1-t), t‬ما معدل الوزو لكل م )‪(x1, x2‬‬


‫نفس الشي بالنسبة الى ‪y‬‬
‫‪y – y1 = t y2 – t y1‬‬
‫‪y = y1 – t y1 + t y2‬‬
‫‪y = (1 - t) y1 + t y2‬‬

‫حيث او كل م )‪ ((1-t), t‬ما معدل الوزو لكل م )‪(y1, y2‬ج‬

‫‪305‬‬
‫اساسيات الرسم بالحاسوب‬

‫لنعيد كتابة المعادلتي واللتاو ستستادماو بي وطعة قط فتكوو‬

‫كل ما نحتابه و احداثيا نهايا الاط بيجاد ويل )‪(x, y‬ج‬

‫مالحظة‪ :‬ناك تمليعو للمنحنيا‬


‫ابول‪ :‬و ابستيفا )‪ (interpolation‬وفيه يمر المنحني بكل النقاطج‬
‫اللاني‪ :‬و التقديري )‪ (approximation‬وفيه ب يمر المنحني بكل النقاطج‬

‫‪ 10.4‬منحنيات بيزر ‪Bezier Curves‬‬


‫منحنيا بيزر ي منحنيا مقطعة ومستمرب م المرتبة األولى أي أو بداية‬
‫المنحني اللاني ي نهاية المنحني األول وم المرتبة اللانية أي أو المنحني األول‬
‫واللاني لهما نفس الميل ج‬
‫وندما نتحدث و منحنيا بيزر فاننا نتحدث و ابشيا الجيدب التي م الممك‬
‫رؤيتها بالرسولج اذا احتجت الى رسل منحني يبدأ وينتهي بنقاط ثابتة‪ ،‬وال ي يمر‬
‫بنقطة وسطية ثابتةج‬
‫وند رسل منحني بيزر يج وليك معرفة ثعث نقاط نقطة البداية‪ ،‬نقطة النهاية‪،‬‬
‫ونقاط السيطرب ج‬
‫في الشكل ‪ 10.4‬فاو )‪ (P0‬تمثل نقطة البداية للمنحني‪ ،‬والنقطة )‪ (P3‬تملل نقطة‬
‫النهاية للمنحني‪ ،‬بينما النقطتاو )‪ (P1 , P2‬تملعو نقاط السيطربج كما تعحظ م‬
‫الشكل ‪ 10.4‬فاو المنحني بيمر بنقاط السيطربج حيث او نقاط السيطرب تستادل في‬
‫السيطرب ولى ابنحنا ج بضبط او تنظيل مواوع )‪ (P1 , P2‬فاو بامكانك او تحدد او‬
‫تغير مقدار انحنا المنحنيج‬

‫‪306‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :10.4‬نقاط البداية والنهاية ونقاط السيطرب لمنحنيج‬

‫المنحني يرسل ابتدا ا م نقطة بداية محددب الى نقطة النهاية‪ ،‬اثنا رسل الاط‬
‫سيتولد انحنا بالاط يتاثر بنقاط وسطية واحدب او اكلر تسمى نقاط السيطربج في‬
‫الشكل ‪ 10.5‬يعحظ او تغيير مواوع نقطة السيطرب ستؤثر ولى شكل الرسل الناتجج‬

‫م حظة‪ :‬شكل المنحني من الممكن السيطرة علي بسهولة بمساعدة مجموعة من‬
‫نقاط السيطرة ‪ ،control points‬بمعنى ان النقاط تحدد اوال والمنحني سوف يرسم‬
‫بحيث يقطع كل واحدة من هذه النقاط واحدة بعد االخرى بتسلسل محدد‪ .‬زيادة عدد‬
‫نقاط السيطرة سيؤدي الى رسم منحني اكثر نعومة‪.‬‬

‫‪307‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :10.5‬تاثير تغيير مواوع نقطة السيطرب ولى اشكال المنحنيا ج‬

‫‪308‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪linear‬‬ ‫شرائح بيزر الاطية يتل الحصول وليها بطريقة ابستيفا الاطي‬
‫‪ interpolation‬بي اثناو م نقاط السيطرب ‪P0 , P1‬ج‬

‫‪P(t) = (1-t) P0 + t P1 ,‬‬ ‫‪0≤t≤1‬‬

‫منحني بيزر يعرف بواسطة مجمووة م نقاط السيطرب )‪ ،(P0 … Pn‬حيث او ‪n‬‬
‫ي دربة المنحني وندما تكوو ‪ n = 1‬فاو المنحني قطي‪ ،‬ووندما تكوو ‪ 2‬فاو‬
‫المنحني تربيعي‪ ،‬ووندما تكوو ‪ 3‬فاو المنحني تكعيبي و ك ا ج او اول واقر نقاط‬
‫السيطرب ي دائما نقاط النهاية للمنحنيج ولى كل حال‪ ،‬او نقاط السيطرب الوسطية‬
‫اذا موبودب بشكل وال ب تقع ولى المنحنيج‬
‫تعتمد طريقة رسل منحنيا بيزر ولى استادال معادلة المعامع ج‬
‫بيجاد النقاط التي تساود ولى رسل المنحني‪ ،‬ولتبسيط الموضوع دونا نلقي نظرب‬
‫ولى معادلة المنحنيا بشكل وال ولوب الى الصيغة العامة‪:‬‬

‫منحي بيزر الخطي‬ ‫‪10.4.1‬‬


‫منحني بيزر الاطي و ببساطة قط مستقيل بي نقطتي ‪ ،‬فاذا كاو لديك اثناو م‬
‫النقاط )‪ ،(P0, P1‬فاو المنحني يملل بالمعادلة‬

‫‪B(t) = (1 – t) P0 + t P1‬‬ ‫‪0‬‬ ‫‪t‬‬ ‫‪1‬‬

‫منحنيات بيزر التربيعية‬ ‫‪10.4.2‬‬


‫منحني بيزر التربيعي و طريع او مسلك يتل تتبعه بواسطة الدالة )‪ ،B(t‬ونظرا‬
‫بو دربة المنحني ي ‪ 2‬ل لك فاو ودد نقاط السيطرب ستكوو ‪ 3‬وم الممك‬

‫‪309‬‬
‫اساسيات الرسم بالحاسوب‬

‫تمليلها بالنقاط ) ‪ ،( P0, P1, and P2‬ه م الممك تفسير ا كتوليد قطي للنقاط‬
‫المتجاورب حيث سيتل توليد قطي م النقطة ‪ P0‬الى النقطة ‪ ،P1‬وم النقطة ‪P1‬‬
‫الى النقطة ‪ P2‬ولى التواليج معادلة منحني بيزر التربيعي م الممك او نعرفها‬
‫ولى انه دمج اثناو م منحنيا بيزر الاطيةج‬

‫)‪B(t) = (1 – t) BP0, P1(t) + t . BP1, P2(t‬‬ ‫‪0‬‬ ‫‪t‬‬ ‫‪1‬‬


‫]‪B(t) = (1 –t) [(1 – t) P0 + t P1] + t [(1 – t) P1 + t P2‬‬ ‫‪0‬‬ ‫‪t‬‬ ‫‪1‬‬

‫وند اوادب ترتي المعادلة اوعه سنحصل ولى‪:‬‬

‫‪B(t) = (1- t)2 P0 + 2 (1 –t) t P1 + t2 P2‬‬ ‫‪0‬‬ ‫‪t‬‬ ‫‪1‬‬

‫منحنيات بيزر التكعيبية‬ ‫‪10.4.3‬‬


‫معادلة الدربة الرابعة تحتاج الى اربع نقاط سيطرب ) ‪(P0, P1, P2 and P3‬‬
‫الى ‪ P1‬ويصل الى‬ ‫لتعريف منحني بيزر التكعيبيج المنحني يبدأ بالنقطة ‪ P0‬وت‬
‫‪ P3‬وادما م ‪P2‬ج وادب سوف ب تمر قعل النقاط ‪ P1‬او ‪P2‬ج‬

‫نقاط السيطرب الوسطية ه‪ ,‬ي فقط لتوفير معلوما ابتجاهج‬


‫او المسافة بي )‪ (P0, P1‬تحس كل البعد وكل السروة التي يتحرك بها المنحني‬
‫نحو ‪ P1‬وبل او يتحول نحو ‪P2‬ج‬
‫معادلة منحني بيزر التكعيبي م الممك او نعرفه ولى انه دمج اثناو م منحنيا‬
‫بيزر التربيعيج‬
‫‪310‬‬
‫اساسيات الرسم بالحاسوب‬

‫)‪B(t) = (1 – t) BP0, P1, P2(t) + t . BP1, P2, P3(t‬‬ ‫‪0‬‬ ‫‪t‬‬ ‫‪1‬‬

‫‪B(t) = (1 – t) [(1- t)2 P0 + 2 (1 –t) t P1 + t2 P2 ] + t [(1- t)2 P1 + 2‬‬


‫] ‪(1 –t) t P2 + t2 P3‬‬ ‫‪0 t 1‬‬

‫‪B(t) = (1- t)3 P0 + 2 (1 –t)2 t P1 + (1 –t) t2 P2 + t (1- t)2 P1 + 2‬‬


‫‪(1 –t) t2 P2 + t3 P3‬‬ ‫‪0 t 1‬‬

‫‪B(t) = (1- t)3 P0 + 3 (1 –t)2 t P1 + 3 (1 –t) t2 P2 + t3 P3‬‬


‫‪0 t 1‬‬

‫‪ 10.5‬التعريف العام لمنحنيات بيزر‬


‫منحنيا بيزر م الممك تعريفها بي دربة ‪n‬ج‬
‫التعريف المعتمد ولى دوال العودب ‪Recursive definition‬‬
‫تعريف العودب لمنحنيا بيزر م الدربة ‪ n‬نوضحها كدمج قطي م نقطة الى‬
‫نقطة لزوج م النقاط المتقابلة في اثناو م منحنيا بيزر بدربة ‪n – 1‬ج‬
‫لتك ‪ BP0, P1, … , Pn‬تشير الى منحني بيزر يحس بي مجمووة نقاط ماتارب‬
‫‪P0, P1, ..., Pn‬ج ابو لنبدأ‬
‫‪BP0(t) = P0‬‬
‫)‪B(t) = BP0, P1, … , Pn (t) = (1 –t) BP0, P1, … , Pn-1 (t) + t . BP1, P2, … , Pn(t‬‬

‫ه الصيغة م الممك التعبير ونها بشكل وال كما يلي‬

‫‪311‬‬
‫اساسيات الرسم بالحاسوب‬

‫مثال‪ :‬وندما تكوو الدربة الاامسة ‪ n = 5‬فاو‬


‫= )‪BP0,P1,P2,P3,P4,P5(t) = B(t‬‬
‫‪(1-t)5P0 + 5t (1-t)4P1 + 10t2 (1-t)3P2 +10t3 (1-t)2P3 + 5t4 (1-t)P4 +‬‬
‫‪t5P5 ,‬‬ ‫‪0 t 1‬‬

‫النقاط ‪ Pi‬تسمى نقاط السيطرب لمنحني بيزرج‬

‫مالحظة‪:‬‬
‫او معامع متعدد الحدود تحس وفع الععوة التالية‬

‫‪ ‬الكود البرمجي لرسل منحني باستادال منحني بيزر تل اقتيار اربع نقاط في‬
‫ه البرنامج‬
‫>‪#include <stdio.h‬‬
‫>‪#include <stdlib.h‬‬
‫>‪#include <graphics.h‬‬
‫>‪#include <math.h‬‬

‫‪312‬‬
‫اساسيات الرسم بالحاسوب‬

void bezier (int x[4], int y[4])


{
int gd = DETECT, gm;
int i;
double t;

initgraph (&gd, &gm, "..\\bgi");

for (t = 0.0; t < 1.0; t += 0.0005)


{
double xt = pow (1-t, 3) * x[0] + 3 * t * pow (1-t, 2) * x[1] +
3 * pow (t, 2) * (1-t) * x[2] + pow (t, 3) * x[3];

double yt = pow (1-t, 3) * y[0] + 3 * t * pow (1-t, 2) * y[1] +


3 * pow (t, 2) * (1-t) * y[2] + pow (t, 3) * y[3];

putpixel (xt, yt, WHITE);


}

for (i=0; i<4; i++)


putpixel (x[i], y[i], YELLOW);

getch();
closegraph();
return;
}

313
‫اساسيات الرسم بالحاسوب‬

‫)(‪void main‬‬
‫{‬
‫;]‪int x[4], y[4‬‬
‫;‪int i‬‬

‫;"‪cout<< "Enter the x- and y-coordinates of the four control points.\n‬‬


‫)‪for (i=0; i<4; i++‬‬
‫;]‪cin>> x[i]<< y[i‬‬

‫;)‪bezier (x, y‬‬


‫}‬

‫‪ 10.6‬الشريحة (االخدود) ‪Spline‬‬


‫منحني الشرائح له تاريخ بعيد‪ ،‬حيث كاو يشكل ا المنحني سابقا بواسطة‬
‫الحرفيي او النجاري ‪ ،‬والمنحني وبارب و شريحة قشبية ضيقة وطويلة‪ ،‬تشكل‬
‫تستادل كاوزاو تسمى بط ”‪“ducks‬‬ ‫بواسطة وطع معدنية وادب م الرلا‬
‫ج وادب تولد منحنيا مستمرب م الدربة اللانيةج و ه تستادل في تصميل‬
‫السيارا ‪ ،‬السف ‪ ،‬الطائرا ججالخج‬
‫لك المنحنيا التي تستند الى وطع مصنعة ب يمك اوداد ا بشكل بيد‪ ،‬حيث ب‬
‫يوبد لها تعريف مضبوط لشكل المنحنيج‬
‫حوالي العال ‪ 1960‬الكلير م المصممي في الصناوة وملوا ولى ه المشكلةج‬
‫اليول‪ ،‬المنحنيا تنجز بسهولة باستادال الحاسوب‪ ،‬وتستادل في التصاميل الماتلفة‬
‫التي تعمل ولى الحاسوب‪ ،‬الف ‪ ،‬الحركة وغير اج‬

‫‪314‬‬
‫اساسيات الرسم بالحاسوب‬

‫كلمة شريحة ‪ spline‬اتت م لناوة بنا السف ‪ ،‬حيث انها بابلل تشير الى‬
‫شريط نحيف م الاش يستادمه الرسال كمنحنيا ج يتل وضع اوزاو معدنية ولى‬
‫سطح الرسل وتمرر ه ابشرطة بي ابوزاو كما في الشكل ‪10.6‬ج‬

‫شكل ‪10.6‬ج الشريحة ‪spline‬‬

‫‪ 10.7‬منحني الشرائح االساس ‪B-spline‬‬


‫ي ماتصر لكلمة )‪ (basis spline‬و ي احد انواع الاطوط المنتظمة وله‬
‫استاداما ماتلفة فهو يستادل في رسل الحروف‪ ،‬النماذج ثعثية اببعاد‪ ،‬الرسول‬
‫المتحركة‪ ،‬المسارا وغير اج‬
‫منحنااي الشاارائح االساااس مشاااب لمنحنااي بياازر‪ ،‬لكناا يختلااف عاان منحنااي بياازر‬
‫باستخدام دالة الشرائح‪.‬‬
‫يتاثر شكل المنحني في منحني بيزر بجميع نقاط السيطرة‪ .‬بينما في منحني الشرائح‬
‫االساس فان فقط لغاياة اقارب ارباع نقااط سايطرة تاخاذ بنظار االعتباار ( بمعناى ان‬
‫اعلى درجة لمتعدد الحدود سيكون ‪ ،3‬وهو منحني مكعب)‪.‬‬
‫ناك ودب انواع م منحنيا الشرائح ابساس باقتعف الدربا قطي‪ ،‬تربيعي‪،‬‬
‫تكعيبي ‪ ،‬و ناك‪ :‬المنحني المنتظل وغير المنتظل ‪(uniform and non-‬‬
‫)‪uniform‬ج‬

‫منحني الشرائح يعرف بواسطة ثعث اشيا‬

‫‪315‬‬
‫اساسيات الرسم بالحاسوب‬

‫نقاط السيطرة ‪Control points‬‬ ‫‪‬‬


‫رتبة المنحني ‪The curve's order‬‬ ‫‪‬‬
‫متج العقد ‪A knot vector‬‬ ‫‪‬‬
‫نقاااط الس ايطرة ساابق وان تاام التطاارق لهااا فااي منحنااي بياازر‪ .‬متجا العقااد هااي صاافة‬
‫اضافية لتمثيل نورب ‪ .Nurb representation‬من السهولة اساتخدام المنحنياات مان‬
‫دون الوصول ابدا الى متجهات العقد‪.‬‬
‫ان المنحياااات مثااال منحياااات بيااازر ومنحنياااات الشااارائح االسااااس هاااي منحنياااات‬
‫المعامالت‪ .‬المنحني هو دالة )‪ P(u‬والتي تعيد النقطة ‪ P‬على المنحناي لقيماة خاصاة‬
‫للمعامل ‪ .u‬اذا اختلفت قيمة ‪ u‬من القيمة االبتدائياة ‪ umin‬الاى القيماة العلياا ‪ umax‬فاان‬
‫المنحني سيتم رسم ‪.‬‬
‫العقد (بضم العين) سيتم تعريفها في فضاء المعامل للمنحني‪ .‬سيتم استخدام الرمز ‪ui‬‬
‫لالشارة الى عقدة خاصة او محددة‪ .‬ان تجمع عقد لمنحني خاص يدعى متج العقد‪.‬‬
‫المنحني يعرف بمتوالية من متعددات الحدود (تاذكر درسات فاي الجبار رسام الادوال‬
‫مثل ‪ .)x(u) = u, y(u) =u2-1‬ان عادد متعاددات الحادود التاي نحتاجهاا لتعرياف‬
‫منحني يعتمد على عدد نقاط السيطرة ورتبة المنحني‪ .‬متجا العقاد فاي اي مكاان مان‬
‫مدى المعامل يبدا وي نهي متعددات الحدود هذه عند رسام المنحناي‪( .‬هاي تسامى عقاد‬
‫وذلك الن قيمها تربط مع بعض متعاددات الحادود)‪ .‬لحسان الحاظ فاناك التحتاا الاى‬
‫معرفة تفاصيل رياضيات متعدد الحدود لغرض استخدام متج العقد‪.‬‬

‫مالحظة‪ :‬المنحني ليس م الضرورب او يمر بنقاط السيطرب شكل ‪10.7‬ج‬

‫‪316‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :10.7‬منحني الشرائح مع توضيح النقاط المهمة لرسمهج‬

‫بعض القواعد المهمة‬ ‫‪10.7.1‬‬

‫ودد نقاط السيطرب التي تعرف المنحني يج دائما او تكوو مساوية الى او‬ ‫‪1‬ج‬
‫اكبر م رتبة المنحنيج ملالجج المنحني التربيعي رتبته ‪ 3‬يج او يكوو‬
‫له ولى ابول ثعث نقاط سيطرب‪ ،‬التكعيبي ولى ابول اربع نقاط و ك اج‬
‫ودد العقد في متجه العقد دائما يكوو مساوي ودد نقاط السيطرب ‪ +‬رتبة‬ ‫‪2‬ج‬
‫المنحني ج ملالجج نفرض او المنحني التكعيبي رتبته = ‪ 4‬ويتكوو م‬
‫اربع نقاط سيطرب‪ ،‬وند ا سيكوو له ثمانية ونالر في متجه العقدج‬
‫رتبة المنحني تكوو ولى ابول = ‪2‬ج‬ ‫‪3‬ج‬
‫القيل في متجه العقد يج او تكوو دائما بترتي تصاوديج‬ ‫‪4‬ج‬
‫ملال ]‪ [0 0 0 1 2 3 3 3‬و متجه وقد مقبولج‬
‫لك متجه العقد ]‪ [0 0 0 2 1 3 3 3‬غير مقبول بو بعض القيل في المتجه‬
‫الغر م القيل السابقة لهاج‬

‫‪317‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪5‬ج مدى المعامع المقبولة للمنحني تبدا وند )‪ (umin= uorder-1‬وتتصاود‬


‫لغاية لك ليست م ضمنها )‪ ،(umax = um‬حيث او ‪ m‬تملل ودد نقاط‬
‫السيطربج القيل التي اول م ويمة المعامل الصغرى‪ ،‬والقيل التي تساوي او‬
‫اكبر م ويمة المعامل العليا سوف ب تعرف أي ب تكوو ضم المنحني ج‬
‫بكعل اقر فاو‬
‫‪umin ≤ u < umax‬‬

‫مالحظة‪ :‬م المناس ابشارب الى او ويل العقد ب تؤدي الى اي فرقج كل الحسابا‬
‫تعتمد فقط ولى نس القيل الى بعضها‪ ،‬ل لك اذا حافظنا ولى ه النس فاو ذلك‬
‫يؤدي الى نفس المنحنيج وليه فاو متجها العقد‬
‫]‪[0 0 0 1 2 2 2‬‬
‫]‪[100 100 100 200 300 300 300‬‬
‫]‪[-0.5 -0.5 -0.5 0 0.5 0.5 0.5‬‬

‫كلها تنتج نفس المنحنيج بشكل وال فاو متوالية ابوداد الصحيحة والتي تبدا بالقيمة‬
‫لفر تستادل للمحافظة ولى البساطةج‬

‫م حظة‪ :‬من الممكن اضافة نقاط سيطرة الى المنحني دون تغير شاكل ‪ .‬هاذه العملياة‬
‫تدعى اضافة عقاد ‪ .refinement or knot insertion‬اضاافة عقادة هاي طريقاة‬
‫الضافة مرونة اكثر للمنحني‪ ،‬وكذلك تحدد تاثير حركة نقطة سيطرة معينة‪ .‬اذا كاان‬
‫منحني معين ل نقاط سايطرة اكثار‪ ،‬فاان تااثير حركاة اي واحادة منهاا سايكون تااثير‬
‫قليل‪.‬‬

‫م حظة‪ :‬سبق وان قلنا ان العدد الكلي لنقاط السيطرة يساوي الرتبة زائاد عادد نقااط‬
‫السيطرة‪ .‬علي فان في كل مرة تضيف عقدة‪ ،‬فان نقطة سايطرة اخارى تضااف الاى‬
‫‪318‬‬
‫اساسيات الرسم بالحاسوب‬

‫المنحني‪ .‬ان موقع او مكان النقطة الجديدة يعتمد على قيمة العقدة الجديدة‪ .‬ان اضاافة‬
‫العقد الى المنحني يحرك نقاط السايطرة االخارى القريباة منهاا للمحافظاة علاى شاكل‬
‫المنحني‪ .‬كلما اضفت عقد اكثر فان عقد السيطرة تصبح اقرب واقرب الاى المنحناي‬
‫الحقيقي‪.‬‬
‫لتصميل منحني الشرائح فاننا نحتاج الى ثعث مجاميع رئيسية‬
‫‪ ‬مجمووة م نقاط السيطربج‬
‫‪ ‬مجمووة م العقدج‬
‫‪ ‬مجمووة م العوامل‪ ،‬واحدب لكل نقطة سيطرب‪ ،‬بحيث كل مقاطع المنحني‬
‫تربط مع بعضها لتحقيع حالة م ابستمراريةج‬

‫تغيير شكل منحني الشرائح م الممك او يتل بتغيير واحدب او اكلر م معامع‬
‫السيطرب التالية‬
‫‪1‬ج مووع نقطة السيطربج‬
‫‪2‬ج مووع العقدج‬
‫‪3‬ج دربة المنحنيج‬

‫‪ ‬كل نقطة سيطرب تشبه ووب الج ب المغناطيسي ولى المنحني كما في‬
‫الشكل ‪10.8‬ج او ووب ومدى ه ابوطاب المغناطيسية يتل ولفها رياضيا‬
‫بواسطة دوال ابساسج‬

‫شكل ‪ :10.8‬تاثير نقاط السيطرب ولى المنحنيج‬

‫‪319‬‬
‫اساسيات الرسم بالحاسوب‬

‫بحظ او نقطة السيطرب المغناطيس تؤثر ولى كامل المنحني‪ ،‬بالرغل م او‬
‫تاثير ا يصبح اضعف كلما ابتعد و نقطة السيطربج ابمتداد الحقيقي للتاثير يتل‬
‫حسابه بمتوالية م العقدج‬

‫‪ ‬في الشكل ‪ 10.9‬منحني الشرائح المعرف بست نقاط سيطرب‪ ،‬ويوضح الشكل‬
‫‪ 10.9‬تاثير تغيير دربة متعدد الحدود )‪(2, 3, 4‬ج‬

‫المنحني ‪ Q3‬يعرف بنقاط السيطرب ‪P0,P1,P2,P3‬‬


‫المنحني ‪ Q4‬يعرف بنقاط السيطرب ‪P1,P2,P3,P4‬‬
‫المنحني ‪ Q5‬يعرف بنقاط السيطرب ‪P2,P3,P4,P5‬‬
‫كل وطعة منحني تشارك نقاط سيطربج‬

‫شكل ‪ :10.9‬تاثير تغيير دربة متعدد الحدودج‬

‫‪320‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬منحني الشرائح يسمح بما يسمى السيطرب المحلية )‪ (local control‬ولى‬


‫شكل منحني الشرائحج بحظ في الشكل ‪ 10.10‬تاثير تغيير مووع نقطة‬
‫السيطرب ‪ P4‬قالية محلية بالمقارنة مع الشكل ‪10.9‬ج‬

‫شكل ‪ :10.10‬تاثير تغيير نقطة السيطرب )‪ (P4‬ولى المنحنيج‬

‫رتبة المنحني ‪Curve order‬‬ ‫‪10.7.2‬‬


‫م اكلر رت المنحنيا ومومية ي الرتبة ‪ 2‬قطي ‪ 3 ,‬تربيعي ‪ 4 ,‬تكعيبي ج‬
‫المنحني مع الرتبة ‪ 2‬ببساطة و متعدد الاطوطج المنحنيا التربيعية تستادل بشكل‬
‫وال لتمليل ابوواس ومقاطع الشكل البيضوي‪ ،‬انظر الشكل ‪10.11‬ج‬
‫تاثير حركة نقطة سيطرب معينة يعتمد ولى رتبة المنحنيج اذا كانت الرتبة والية‪،‬‬
‫فاو حركة نقطة سيطرب مفردب تؤثر اكلر ولى المنحني مما لو كانت الرتبة وليلةج‬

‫‪321‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ : 10.11‬رت المنحنيج‬

‫مالحظة‪ :‬اذا كاو ودد نقاط السيطرب يساوي الرتبة‪ ،‬وليه فاو تحريك أي نقطة‬
‫سيطرب يغير الشكل لكامل المنحنيج اما اذا كاو لدينا نقاط سيطرب اكلر م الرتبة‪،‬‬
‫ه‬ ‫وليه فاو تحريك نقطة معينة سيؤثر فقط ولى المنحني بالقرب م تلك النقطة‬
‫الاالية تدوى السيطرب المحلية ) ‪ Local control‬ج‬

‫تعريف الدوال االساس في منحني الشريحة االساس‬ ‫‪10.7.3‬‬


‫دوال المزج )‪ (blend function‬في بيزر تستادل كاوزاوج دوال المزج او تسمى‬
‫وادب الدوال ابساس في منحني الشرائح ابساس سوف تستادل بنفس الطريقةج ولى‬
‫كل حال‪ ،‬ي اكلر تعقيد بكليرج‬
‫ناك اثناو م الصفا المرغوبة والتي ي ليست بز م دوال بيزر ابساس‪،‬‬
‫و ي‬
‫‪1‬ج تقسيل المدى الى ابزا تسمى وقد ‪knots‬ج‬
‫‪322‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪2‬ج الدوال ابساس ليست ب تساوي لفر ولى كامل الفتربج‬

‫في الحقيقة كل دالة اساس لمنحني الشريحة ابساس ب تساوي لفر بفترا بزئية‬
‫متجاورب وليلة‪ ،‬وكنتيجة‪ ،‬دوال ابساس لمنحني الشريحة ابساس ي تماما‬
‫"محلية"ج‬
‫لتك ‪ U‬مجمووة متكونة م ‪ m + 1‬م ابروال المتزايدب‬
‫‪u0 <= u2 <= u3 <= ... <= um‬‬
‫‪ ‬تدوى )‪ (ui‬وقدب ‪knot‬ج‬
‫‪ ‬المجمووة ‪ U‬تدوى متجه العقدج‬
‫‪ ‬والفترب نصف المفتوحة )‪ [ui, ui+1‬تدوى فترب العقدب )‪(i‬ج‬
‫‪ ‬بحظ نا حيث او بعض الفترا )‪ (ui‬ربما تكوو متساوية‪ ،‬ل لك فاو‬
‫بعض فترا العقد ربما ب تكوو موبودبج‬
‫‪ ‬اذا ظهر وقدب )‪ (ui‬بعدد ‪ k‬م المرا‬
‫)‪ ,(i.e., ui = ui+1 = ... = ui+k-1‬حيث او ‪ k > 1‬فاو )‪ (ui‬تسمى وقدب‬
‫متعددب بمضاوفا ‪ (multiplicity) k‬متكررب وتكت )‪ ui(k‬ج‬
‫‪ ‬باعف ذلك اذا ظهر )‪ (ui‬فقط مرب واحدب‪ ،‬فاو العقدب تسمى وقدب بسيطة‬
‫)‪(simple‬ج‬
‫‪ ‬اذا كانت العقد متساوية في طول الفترا أي او ‪ ui+1 - ui‬تكوو ويمة ثابتة‬
‫ولى مدى ‪ ، 0 <= i <= m - 1‬في ه الحالة فاو متجه العقد او متوالية‬
‫العقد يقال ونها انها منتظمة باعف ذلك تكوو غير منتظمةج‬

‫العقد م الممك اوتبار ا نقاط تقسيل حيث تجزأ او تقسل المدب ]‪ [u0, um‬الى‬
‫فترا وقدج كل الدوال ابساس لمنحني الشريحة ابساس يفترض او تكوو لها‬
‫مدياتها الاالة ولى المدب ]‪[u0, um‬ج في ه الحالة‪ ،‬فاننا نستادل ‪ u0 = 0‬وك لك‬
‫‪ um = 1‬بشكل متكرر ل لك فاو المدى و مدب مغلقة ]‪[0,1‬ج‬

‫‪323‬‬
‫اساسيات الرسم بالحاسوب‬

‫لتعريف الدوال ابساس لمنحني الشرائح ابساس‪ ,‬فاننا نحتاج الى معامع اكلر‪،‬‬
‫نفرض او دربة الدوال ابساس ه )‪(p‬ج الدالة ابساس للفترب )‪ (i‬م الدربة ‪،p‬‬
‫تكت بالصيغة ) )‪ ،(Ni,p(u‬وتعرف كما يلي‪:‬‬
‫اذا كانت الدربة ‪p = 0‬‬

‫باعف ذلك‪ ,‬أي اذا كانت الدربة ‪ p > 0‬فاو‬

‫ا التعريف يبدو معقدا‪ ،‬لك ليس لع الفهلج فاذا كانت الدربة تساوي لفر‬
‫)‪ (i.e., p = 0‬فاو دوال ابساس ه تعتبر دوال قطوا و ا ال ي يشير له‬
‫التعبير ابولج وب لك فاو الدالة ابساس )‪ Ni,0(u‬تكوو ويمتها تساوي ‪ 1‬اذا كانت ‪u‬‬
‫ضم فترب العقدب )‪ (i‬والتي ي )‪[ui, ui+1‬ج‬
‫منحني الشرائح م الرتبة ‪ k‬و منحني معامع يتكوو م دمج دوال ابساس‬
‫لمنحني الشريحةج ويعتمد ولى‬
‫نقاط السيطرب )‪Pi (i = 0,…,n‬ج‬
‫العقد‪ui, i = 0,…, m :‬‬
‫‪m=n+p+1‬‬
‫حيث او ‪ m‬تملل ودد العقد‪ P ،‬تملل ودد نقاط السيطرب‪ n ،‬دربة المنحني رتبة‬
‫المنحني ‪ k‬تساوي)‪ (n+1‬ج سبع وبينا ضم القواود او ودد العقد تساوي ودد نقاط‬
‫السيطرب زائد رتبة المنحنيج‬
‫‪324‬‬
‫اساسيات الرسم بالحاسوب‬

‫مثال‪ :‬استادال العقد البسيطة ‪simple knots‬‬


‫نفرض لدينا متجه العقد } ‪U = { 0, 0.25, 0.5, 0.75, 1‬ج‬
‫وليه فاو‬
‫‪ m = 4‬حيث او ‪ m‬تملل حجل متجه العقد ج‬
‫‪u0 = 0, u1 = 0.25, u2 = 0.5, u3 = 0.75 and u4 = 1‬‬

‫‪ ‬الدالة ابساس للدربة لفر ستكوو سهلة بداج او الدوال ابساس‬


‫)‪N0,0(u), N1,0(u), N2,0(u) and N3,0(u‬‬
‫تعرف ولى فترا العقد )‪[0,0.25,), [0.25,0.5), [0.5,0.75) and [0.75,1‬‬
‫ولى التوالي‪ ,‬كما في الشكل ‪10.12‬ج‬

‫شكل ‪ :10.12‬رسل الدالة ابساس م الدربة لفر ولى بعض الفترا المحددبج‬

‫‪ ‬دربة متعدد الحدود لمنحني الشرائح ابساس م الممك او يحدد بشكل‬


‫مستقل و ودد نقاط السيطربج‬

‫‪325‬‬
‫اساسيات الرسم بالحاسوب‬

‫ماذا تعني المعامالت ‪What is the meaning of the‬‬ ‫‪10.7.4‬‬


‫‪coefficients‬‬
‫او وملية حساب المعامع ربما تكوو م اكلر الاطوا تعقيدا وذلك بننا يج‬
‫او نتاكد م حالة ابستمراريةج‬
‫دونا ندوع في معنى المعامع في تعريف )‪Ni,p(u‬ج‬
‫وند حساب )‪ Ni,p(u‬فانها تستادل ))‪ ,(Ni,p-1(u), Ni+1,p-1(u‬حيث او العبارب‬
‫ابولى )‪ Ni,p-1(u‬ب تساوي لفر ضم الفترب )‪[ui, ui+p‬ج‬
‫ه الفترب نصف المفتوحة‪ ,‬وليه فاو ‪ u - ui‬ي‬ ‫فاذا كانت ‪ u‬في مكاو ما ضم‬
‫المسافة بي ‪ u‬والنهاية اليسرى له ه الفترب‪ ،‬طول الفترب و ‪ui+p - ui‬ج‬

‫الععوة )‪ (u - ui) / (ui+p - ui‬تملل نسبة المسافا اوعه و ي دائما بقيمة تتراوح‬
‫بي الصفر والواحدج انظر الشكل ‪10.13‬ج‬
‫العبارب اللانية‪ ،‬و او )‪ Ni,p-1(u‬ب تساوي لفر ضم الفترب )‪[ui+1, ui+p+1‬ج فاذا‬
‫ه الفترب‪ ،‬وليه فاو )‪ (ui+p+1 – u‬ي المسافة م ‪ u‬الى النهاية‬ ‫كاو ‪ u‬ضم‬
‫اليمنى له ه الفترب‪ ،‬وب لك فاو )‪ (ui+p+1 - ui+1‬تملل طول الفترب كما في الشكل‬
‫‪ ،10.13‬واو الععوة التالية )‪ (ui+p+1 - u) / (ui+p+1 - ui+1‬تملل نسبة ه‬
‫المسافا ‪ ،‬وويمتها تتراوح بي الصفر والواحد و ي تملل معامع الدوال‬
‫ابساس ج‬
‫وليه فاو )‪ Ni,p(u‬ي دمج او اتحاد قطي لكل م ))‪ (Ni,p-1(u), Ni+1,p-1(u‬مع‬
‫اثناو م المعامع ‪ ،‬كع ما قطي في ‪ ،u‬وبمدى يتراوح بي الصفر والواحدج‬

‫‪326‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :10.13‬اطوال الفترا والمعامع للدوال ابساسج‬

‫متجه العقد ‪ U‬م الممك او يكوو‬


‫‪1‬ج منتظل دوري )‪Uniform (periodic‬‬
‫تكوو العقد متباودب بشكل متساوي‪ ،‬ملال‬
‫]‪[01234‬‬
‫] ‪[ -0.2 -0.1 0 0.1 0.2‬‬
‫] ‪[ 0 0.25 0.5 0.75 1‬‬

‫في ه الحالة فاو متجه العقد المنتظل يولد دوال اساس دورية منتظمة كما في‬
‫الشكل ‪10.14‬ج‬

‫)‪Ni,k (u) = Ni-1,k (u-1) = Ni+1,k (u+1‬‬

‫‪327‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :10.14‬منحني ناتج م متجه وقد منتظلج‬

‫‪2‬ج منتظل مفتوح ‪open-uniform‬‬


‫في ا المتجه فاو ناك تكرار لقيل العقد تساوي رتبة المنحني ‪k‬ج العقد الداقلية‬
‫متباودب بشكل متساويج ملل‬
‫‪k=2‬‬ ‫]‪[0012344‬‬
‫‪k=3‬‬ ‫]‪[00012333‬‬
‫‪k=4‬‬ ‫]‪[000012222‬‬

‫‪Non-Uniform‬‬ ‫‪3‬ج غير منتظل‬


‫ودل انتظال التباود بي العقد و‪/‬او وقد متعددب او متكررب في الداقلج ملال‬
‫] ‪[ 0 0.28 0.5 0.72 1‬‬
‫]‪[00011222‬‬
‫]‪[012234‬‬

‫مالحظة‪ :‬تجزئة المنحني بشكل مباشر م الصع القيال به‪ ،‬ابفضل او يتل تجزأب‬
‫او تقسل مدى المنحنيج‬
‫‪328‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬مدى المنحني و ]‪ [0,1‬ه الفترب المغلقة تقسل الى ما يسمى العقد ‪knots‬ج‬
‫‪ ‬العقد ستكوو ‪0 <= u0 <= u1 <= ... <= um <= 1‬ج‬
‫‪ ‬تغيير تقسيل المدى ]‪ [0,1‬يغير شكل المنحنيج‬

‫امثلة‪:‬‬
‫‪Bi,2‬‬ ‫‪1‬ج دالة اساس قطية‬
‫‪ , Order = 2, degree = 1‬شكل ‪10.15‬ج‬ ‫الدربة = ‪ ,1‬الرتبة = ‪2‬‬

‫شكل ‪ :10.15‬منحني الشرائح لدالة اساس قطيةج‬

‫‪2‬ج دالة اساس تربيعي ‪Bi,3‬‬


‫‪ , Order = 3, degree = 2‬شكل ‪10.16‬ج‬ ‫الدربة = ‪ ,2‬الرتبة = ‪3‬‬

‫شكل ‪ :10.16‬منحني الشرائح لداب اساس تربيعيةج‬

‫‪329‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪3‬ج دالة اساس تكعيبية ‪Bi,4‬‬

‫‪ , Order = 4, degree = 3‬شكل‬ ‫الدربة = ‪ ,3‬الرتبة = ‪4‬‬


‫‪10.17‬ج‬

‫شكل ‪ :10.17‬منحني الشرائح لداب اساس تكعيبيةج‬

‫مثال‪ :‬اذا كاو لدينا اربع وقد ) ‪ (u0 = 0, u1 = 1, u2 = 2 and u3 = 3‬وفترا‬


‫العقد )‪ (0, 1, 2‬ي ) )‪ ([0,1), [1,2), [2,3‬بحظ او ودد فترا العقد تساوي‬
‫ودد العقد مطروح منها واحد‪ ,‬لماذا؟ ج‬
‫الدالة ابساس م الدربة )‪ (0‬ي‪:‬‬
‫‪ ( N0,0(u) = 1 ) ‬ضم الفترب )‪ ,[0,1‬وتكوو لفر قعف ذلك أي‬
‫تكوو لفر للقيل قارج الفترب )‪ [0,1‬ج‬
‫‪ ( N1,0(u) = 1 ) ‬ضم الفترب )‪ [1,2‬وتكوو لفر قعف ذلك أي تكوو‬
‫لفر للقيل قارج الفترب )‪ [1,2‬ج‬
‫‪ ( N2,0(u) = 1 ) ‬ضم الفترب )‪ [2,3‬وتكوو لفر قعف ذلك أي تكوو‬
‫لفر للقيل قارج الفترب )‪ , [2,3‬ا موضح بالشكل ‪10.18‬ج‬

‫‪330‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :10.18‬دالة اساس م الدربة لفر ضم فترا الملالج‬

‫لفهل طريقة حساب )‪ Ni,p(u‬للدربة ‪ p‬وندما تكوو الدربة ‪ p‬اكبر م لفر‪،‬‬


‫سنستادل نظال حساب الشكل المللليج كل فترا العقد سيتل تدوينها وموديا ولى‬
‫الجان ابيسر‪ ،‬وكل الدوال ابساس التي دربتها تساوي لفر تكوو في العمود‬
‫اللاني‪ ،‬والدوال ابساس م الدربة ابولى يمينها‪ ،‬و ك اج بحظ الشكل ‪10.19‬ج‬

‫شكل ‪ :10.19‬منحني الشرائح لداب اساس تربيعيةج‬

‫‪331‬‬
‫اساسيات الرسم بالحاسوب‬

‫لو فرضنا او المطلوب حساب )‪ Ni,1(u‬دالة اساس م الدربة ابولى ‪ ,‬نا‬


‫سيكوو مطلوب حساب ) )‪ (Ni,0(u) and Ni+1,0(u‬اي حساب الدوال ابساس م‬
‫الدربة السابقة للدربة الحالية كما في الشكل ‪10.19‬ج و ك اج‬
‫م الممك حساب )‪ N3,1(u) ,N2,1(u), N1,1(u), N0,1(u‬و ك اج كل ه‬
‫)‪ Ni,1(u‬موبودب في العمود اللالث م الشكل ‪10.19‬ج‬
‫نستنتج م ذلك او وملية حساب الدالة ابساس بي دربة )‪ Ni,p(u‬سيتطل حساب‬
‫الدوال ابساس للدربا السابقة له ه الدربة لحي حساب الدوال ابساس للدربة‬
‫لفرج‬
‫ابو دونا نحس )‪ N0,1(u) and N1,1(u‬للملال اوعه‪:‬‬
‫لحساب )‪ N0,1(u‬وحيث او ‪ i = 0‬والدربة ‪ p = 1‬م التعريف سيكوو‬

‫حيث او )‪ (u0 = 0, u1 = 1, u2 = 2‬فاو المعادلة اوعه ستكوو‬

‫)‪N0,1(u) = u N0,0(u) + (2 – u) N1,0(u‬‬

‫حيث او )‪ N0,0(u‬ب يساوي لفر ضم الفترب )‪ [0,1‬وك لك )‪ N1,0(u‬ب تساوي‬


‫لفر ضم الفترب )‪[1,2‬ج‬
‫للتوضيح اكلر اذا كانت ‪ u‬ضم )‪ ,[0,1‬فاو )‪ N0,1(u‬تكوو ‪ uN0,0(u) = u‬حيث‬
‫او )‪ (N0,0(u) = 1‬بنها ضم الفترب كما سبع ووضحنا‪ ،‬و ي تملل الجز‬
‫ابول م المعادلة اوعه ج‬
‫واذا كانت ‪ u‬ضم )‪ ,[1,2‬فاو )‪ N0,1(u‬تكوو )‪ N1,0(u) = (2 - u‬و ي تملل‬
‫الجز اللاني م المعادلة اوعه ج نفس الحسابا تعطي ‪ N1,1(u) = u – 1‬اذا‬
‫‪332‬‬
‫اساسيات الرسم بالحاسوب‬

‫كانت ‪ u‬ضم الفترب )‪ ,[1,2‬وك لك ‪ N1,1(u) = 3 – u‬اذا كانت ضم الفترب‬


‫)‪[2,3‬ج في الشكل ‪ 10.20‬الاطوط السودا والاطوط الحمرا ي )‪ N0,1(u‬و‬
‫)‪ N1,1(u‬ولى التواليج ا يعني او حساب دالة اساسية يستوب اشراك فترتي‬
‫متعاوبتي في حساب ه الدالة‪ ،‬ك لك تشترك دالتي اساسيتي معهاج‬

‫شكل ‪ :10.20‬رسل منحني م الدربة ابولى باشتراك دالتي اساسيتي ج‬

‫وندما تتوفر )‪ ,N0,1(u) and N1,1(u‬م الممك حساب )‪N0,2(u‬ج حس التعريف‬


‫فاو‬

‫بعد تعويض ويل العقد‪ ،‬ينتج ما يلي‬

‫)‪N0,2(u) = 0.5u N0,1(u) + 0.5 (3 – u) N1,1(u‬‬

‫بحظ او )‪ N0,1(u‬ي ليست لفر ضم الفترب )‪ [0,1‬والفترب )‪ [1,2‬وك لك‬


‫)‪ N1,1(u‬ي ليست لفر ضم الفترب )‪ [1,2‬والفترب )‪[2,3‬ج ل لك‪ ،‬لدينا ثعث‬
‫حاب يج او ناق ا بنظر ابوتبار‪:‬‬

‫‪333‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪1‬ج وندما تكوو ‪ u‬ضم )‪[0,1‬‬


‫في ه الحالة‪ ,‬فقط )‪ N0,1(u‬تشترك مع ويمة )‪N0,2(u‬ج حيث او )‪ N0,1(u‬تكوو‬
‫ويمتها تساوي ‪ ،u‬وبالتالي سيكوو لدينا‬

‫‪2‬ج وندما تكوو ‪ u‬ضم )‪[1,2‬‬


‫في ه الحالة‪ ,‬فاو كع ))‪ (N0,1(u), N1,1(u‬تشتركاو مع )‪N0,2(u‬ج حيث او‬
‫)‪ (N0,1(u) = 2 – u, N1,1(u) = u – 1‬ما ضم )‪ ,[1,2‬سيكوو لدينا‬
‫= )‪N0,2(u‬‬
‫)‪(0.5 u) (2 – u) + 0.5 (3 – u) (3 – u) = 0.5 ( -3 + 6u – 2u2‬‬

‫‪3‬ج وندما تكوو ‪ u‬ضم )‪[2,3‬‬


‫في ه الحالة‪ ,‬فقط )‪ N1,1(u‬تشترك مع )‪N0,2(u‬ج‬
‫حيث او ‪ N1,1(u) = 3 - u‬ضم فترب )‪ ,[2,3‬وند ا سيكوو لدينا‬

‫‪N0,2(u) = 0.5 (3 - u) (3 - u) = 0.5 (3 – u)2‬‬

‫اذا رسمنا مقطع منحني لكل حالة م الحاب اللعثة اوعه‪ ،‬سوف نرى او اثني‬
‫م مقاطع المنحنيا المتجاورا ترتبط مع بعضها لتكوي منحني وند العقدج بكعل‬
‫اوضح‪ ،‬مقاطع المنحني للحالة ابولى واللانية ترتبط معا وندما ‪ ،u = 1‬بينما مقاطع‬
‫المنحني للحالة اللانية واللاللة ترتبط وندما ‪u = 2‬ج بحظ باو المنحني المتكوو نا‬
‫منحني سلس وناول‪ ،‬شكل ‪10.21‬ج‬

‫‪334‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ :10.21‬رسل المنحني للملال السابع‬

‫‪ ‬التعامل مع ابحداثيا‬
‫في منحنيا بيزر فاو شكل المنحني يتاثر بجميع نقاط السيطربج اما في منحني‬
‫الشرائح ابساسية فانه يتاثر فقط لغاية اورب اربع نقاط سيطرب تؤق بنظر ابوتبار‬
‫ا يعني او اولى دربة لمتعدد الحدود و ‪ ،3‬تكعيبي ج‬
‫المدقع العزمة لحساب منحني الشرائح ابساسية سوا كاو الرسل يدوي او‬
‫برمجي ي احداثيا مجمووة نقاط السيطرب )‪ ،(n+1‬حيث او‬

‫) ‪Cp = ( xp, yp‬‬ ‫‪p = 0.. n‬‬

‫اذا اوطيت ‪ n + 1‬م نقاط السيطرب ‪ , C0, C1, ..., Cn‬ومتجه العقد‬
‫} ‪U = { u0, u1, ..., um‬‬
‫فاو النقاط التقريبية لمنحني الشرائح م الدربة )‪ (p‬يعرف بواسطة نقاط السيطرب‬
‫ه‪ ،‬ومتجه العقد ‪U‬ج تكوو معادلة المعامع له ي‪:‬‬

‫‪u0‬‬ ‫‪um‬‬ ‫‪p = m – n -1‬‬


‫ي دوال اساسية متعددب الحدود م الدربة )‪ (p-1‬والتي م‬ ‫حيث او‬
‫الممك تعريفها‬

‫‪335‬‬
‫اساسيات الرسم بالحاسوب‬

‫اذا كانت )‪ (p = 0‬فاو‬

‫اما اذا كانت )‪ (p > 0‬فاو‬

‫النقطة ولى المنحني )‪ C(ui‬التي تقابل العقدب ‪ ui‬يشار لها ولى انها نقطة العقدبج‬
‫نقاط العقد تقسل منحني الشرائح الى وطع منحنيا ‪ ،‬كل منها يعرف ضم فترب‬
‫وقدبج‬
‫يشار الى ‪ ui‬ولى انها نقطة انكسار او نقطة ابنقعب )‪ (break point‬والتي تعرف‬
‫مجمووة بزئية م نقاط السيطرب والتي تحسبها الدالة ابساسج واحدب م الطرق‬
‫البسيطة بقتيار نقاط ابنقعب للحصول ولى فضا منتظل ي‬

‫‪336‬‬
‫اساسيات الرسم بالحاسوب‬

‫كما في منحني بيزر ‪ ،‬فاو نقاط السيطرب م الممك او تعمل منحنيا مغلقة وودد‬
‫م نقاط السيطرب في نفس المووع سوف تسح المنحني باتجاه نقطة السيطربج‬

‫املله للدوال ابساس متعددب الحدود‪:‬‬


‫الاطي‪:‬‬

‫التربيعي‪:‬‬

‫التكعيبي‪:‬‬

‫‪ ‬الجدول التالي يوضح نتائج بميع ويل الدالة ابساس )‪ Ni,1(u‬الدربة‬


‫ابولى‬

‫‪337‬‬
‫اساسيات الرسم بالحاسوب‬

‫بالدوال‬ ‫في الجدول اوعه فاننا حسبنا ويل الدوال ابساس وفقا للتعريف الاا‬
‫ابساس التالي وال ي وضحناه سابقا‬

‫باعف ذلك‪ ،‬أي اذا كانت ‪ p > 0‬فاو‬

‫فملع لحساب )‪ N0, 1 (u‬سننف معادلة حساب الدوال ابساس كما يلي‬

‫‪338‬‬
‫اساسيات الرسم بالحاسوب‬

‫وكما و واضح فاو )‪ N0, 1 (u‬ستشترك مع كل م ))‪,(N0, 0 (u), N1, 0 (u‬‬


‫ك لك فانها تشترك مع فترتي متعاوبتي و ما‬
‫))‪([0, 0.25), [0.25, 0.5)) ((u0, u1), (u2, u1‬‬

‫بحظ نا او الععوة اوعه تحتوي ولى وبارتي ابولى تملل ويل الفترب )‪[0, 0.25‬‬
‫ه الفترب وتساوي لفر قارج‬ ‫حيث ستكوو ويمة )‪ N0, 0 (u‬تساوي واحد ضم‬
‫ه الفترب‪ ،‬ل لك فاو النتيجة تكوو‬

‫ك لك فاو العبارب اللانية تملل ويل الفترب )‪ [0.25, 0.5‬حيث ستكوو ويمة )‪N1, 0 (u‬‬
‫ه الفترب وتساوي لفر قارج ه الفترب‪ ،‬ل لك فاو النتيجة‬ ‫تساوي واحد ضم‬
‫تكوو‬

‫و ك ا بالنسبة لبقية الدوالج‬


‫الشكل ‪ 10.22‬يوضح رسل ه الدوال ابساسج وحيث او العقد الداقلية ي ‪0.25,‬‬
‫‪ 0.5 and 0.75‬كلها بسيطة )‪ (i.e., k = 1‬والدربة ي ابولى ‪ p = 1‬ل لك فاو‬
‫ناك دوال اساسية ‪ p - k + 1 = 1‬ب تساوي لفر وثعث وقدج‬

‫‪339‬‬
‫اساسيات الرسم بالحاسوب‬

‫الشكل ‪ :10.22‬رسل الدالة ابساس )‪N0, 1 (u‬ج‬

‫‪ ‬م )‪ Ni,1(u‬م الممك حساب الدوال ابساسية للدربة ‪2‬ج حيث او‬
‫)‪ ،( m = n + p + 1 = 4‬وسيكوو لدينا فقط اثناو م الدوال ابساس م‬
‫الدربة اللانية ))‪(N0,2(u), N1,2(u‬ج الجدول التالي يوضح النتائجج‬

‫فملع لحساب الدالة ابساس ‪ N0,2‬ضم الفترب )‪ (0, 0.25‬سننف معادلة حساب‬
‫الدوال ابساس كما يلي‬

‫‪340‬‬
‫اساسيات الرسم بالحاسوب‬

‫م الجدول فاو ويمة )‪ (N0,1(u) = 4u‬ضم الفترب )‪ (0, 0.25‬بينما ويمة‬


‫)‪ (N1,1(u) = 0‬ضم ذا الفترب‪ ،‬وند التعويض في المعادلة سيكوو لدينا‬

‫‪N0, 1 (u) = 8 u2‬‬


‫لو اردنا حساب الدالة ابساس ‪ N0,2‬ضم الفترب )‪ (0.25, 0. 5‬سننف معادلة‬
‫حساب الدوال ابساس كما يلي‬

‫وم الجدول فاو ويمة ))‪ (N0,1(u) = 2(1- 2u‬ضم الفترب )‪ (0.25, 0. 5‬بينما‬
‫ويمة )‪ (N1,1(u) = 4u - 1‬ضم ذا الفترب‪ ،‬وند التعويض في المعادلة سيكوو‬
‫لدينا‬

‫‪N0, 1 (u) = -1.5 + 12 u – 16 u2‬‬

‫‪341‬‬
‫اساسيات الرسم بالحاسوب‬

‫الشكل ‪ 10.23‬يوضح رسل الدالتي الرئيستي ج الاطوط الزروا العمودية تبي‬


‫مووع العقدج بحظ او كل دالة اساس ترسل المنحني م ثعث مقاطع م منحنيا‬
‫الدربة اللانيةج كملال‪ N0,2(u) ,‬و المنحني ابقضر‪ ،‬وال ي و اتحاد م ثعث‬
‫فترا )‪ [0,0.25), [0.25, 0.5) and [0.5,0.75‬ه مقاطع المنحنيا اللعث‬
‫ترتبط معا مكونة شكل برس سلسج‬

‫شكل ‪ :10.23‬رسل الدالتي ابسايتي )‪(N0,2(u), N1,2(u‬ج‬

‫‪ ‬العقد مع التكرار ابيجابي ‪Knots with Multiplicity‬‬


‫اذا كاو لدينا متجه وقد يحتوي ولى تكرار فاننا به ه الحالة سيحدث لدينا وسمة‬
‫لفر ولى لفر كما سنعحظ بحقاج ل لك‪ ،‬سنعرف وسمة الصفر ولى الصفر ولى‬
‫انها تساوي لفرج م حس الحظ او ه الحالة ي فقط في الحسابا اليدويةج وند‬
‫ه المشكلةج ك لك‪ ،‬اذا كانت‬ ‫التنفي برمجيا فاو ناك قوارزميا كفو ب قالية م‬
‫‪ ui‬وقدب مكررب بعدد ‪ (ui = ui+1 = ... = ui+k-1) k‬وليه فاو فترا العقد‬
‫)‪ [ui,ui+1), [ui+1,ui+2), ..., [ui+k-2,ui+k-1‬تكوو غير موبودب‪ ،‬وكنتيجة ل لك‬
‫فاو )‪ Ni,0(u), Ni+1,0(u), ..., Ni+k-1,0(u‬كلها دوال نتيجتها تساوي لفرج‬

‫افرض لديك متجه العقد } ‪U = { 0, 0, 0, 0.3, 0.5, 0.5, 0.6, 1, 1, 1‬ج ل لك‪,‬‬
‫فاو القيل )‪ (0, 1‬تكرر ثعث مرا ‪ ،‬وويمة العقدب )‪ (0.5‬تتكرر مرتاوج كنتيجة‪،‬‬
‫‪ m = 9‬وويل العقد ستكوو‬

‫‪342‬‬
‫اساسيات الرسم بالحاسوب‬

‫‪ ‬لنحس ويمة الدالة ابساسية )‪ Ni,0(u‬م الدربة لفر ج بحظ حيث او‬
‫‪ m = 9‬والدربة ي ‪ p = 0‬دوال ابساس للدربة لفر ‪ ،‬سيكوو لدينا‬
‫‪n = m - p - 1 = 8‬ج كما واضح في الجدول ادناه‪ ،‬ناك فقط اربع دوال‬
‫اساسية م الدربة لفر ب تساوي لفر )‪N2,0(u), N3,0(u), N5,0(u‬‬
‫)‪ ,and N6,0(u‬بحظ الجدول‬

‫‪ ‬وندما تكوو الدوال ابساس م الدربة ابولىج‬


‫حيث او ‪ p‬يساوي ‪n = m - p - 1 = 7 ,1‬ج فاو الجدول التالي يوضح النتائج‬

‫‪343‬‬
‫اساسيات الرسم بالحاسوب‬

‫)‪N1,1(u‬ج يتل حسابها وفقا للتعبير‬ ‫قالة‪ ,‬لنقل نحس‬ ‫دونا ننظر الى حسابا‬
‫التالي‪:‬‬

‫ه الععوة ينتج مايلي‬ ‫ووض و ‪ u1 = u2 = 0‬وو ‪ u3 = 0.3‬في‬

‫وحيث او )‪ N1,0(u‬تساوي لفر في كل مكاو‪ ،‬ل ا فاو التعبير ابول ستكوو ويمته‬
‫لفر مقسومة ولى لفر ويتل تعريفها ولى انها لفرج ل ا‪ ،‬فاو التعبير اللاني فقط‬
‫‪344‬‬
‫اساسيات الرسم بالحاسوب‬

‫سيكوو له تاثير ولى النتيجةج حيث او )‪ N2,0(u‬ي واحد ضم الفترب )‪[0,0.3‬‬


‫وك لك )‪ N1,1(u‬تساوي ‪ 1 - (10/3)u‬ضم الفترب )‪[0,0.3‬ج‬
‫الشكل ‪10.24‬يوضح رسل الدوال ابساسيةج‬

‫شكل ‪ :10.24‬رسل الدوال ابساسية )‪ (N1, k .. k = 1..6‬وحس الفترا المحددب‬

‫‪ ‬ابو‪ ،‬دونا نحس الدالة ابساسية م الدربة اللانية )‪Ni,2(u‬ج حيث او ‪،p = 2‬‬
‫سيكوو لدينا ‪n = m - p - 1 = 6‬ج الجدول التالي يحتوي ولى بميع )‪Ni,2(u‬ج‬

‫‪345‬‬
‫اساسيات الرسم بالحاسوب‬

‫الشكل ‪ 10.25‬يوضح رسل الدوال ابساسية م الدربة اللانيةج‬

‫شكل ‪ :10.25‬رسل الدوال ابساسية )‪ (Nk,2 k= 0..6‬ضم الفترا المحددب‬

‫‪346‬‬
‫اساسيات الرسم بالحاسوب‬

‫)‪N3,2(u‬ج المعادلة العامة لحساب نقاط‬ ‫قالة كملال‪ ,‬لنحس‬ ‫دونا ناق حسابا‬
‫المنحني ي‬

‫ابو نحس ويمة )‪ N3,2(u‬وفقا للععوة العامة‪ ،‬فتكوو‬

‫نعوض و ويل العقد ‪ u3 = 0.3, u4 = u5 = 0.5 and u6 = 0.6‬سينتج‬

‫)‪N3,2(u) = (5u – 1.5) N3,1(u) + (6 – 10u) N4,1(u‬‬


‫م الشكل ‪ 10.26‬يظهر او )‪ N3,1(u‬ي ناتجة م دمج الدالة )‪ N3,1(u‬مع الدالة‬
‫)‪ N4,1(u‬و ا ما توللنا الية م تطبيع الععوة العامةج‬
‫ابو م المفروض او نحس كل م )‪ N3,1(u‬وك لك )‪ N4,1(u‬بنفس الطريقة‬
‫اوعه‪ ،‬حيث سينتج لنا م الممك معحظة ذلك م الشكل ‪ 10.26‬باو الدالة‬
‫)‪ N3,1(u‬ي ناتج م اشتراك او دمج الدالة )‪ N3,0(u‬مع الدالة )‪N4,0(u‬ج‬
‫الدالة )‪ N3,1(u‬بتساوي لفر ضم الفترب )‪ [0.3, 0.5‬و ي تساوي ‪,5u - 1.5‬‬
‫بينما الدالة )‪ N4,0(u‬تساوي لفر بنها غير موبودب الفترب )‪ [0.5, 0.5‬ج‬
‫ك لك فاو الدالة ستكوو نتيجتها ‪ (5u - 1.5)2‬و بز بيساوي لفر م )‪N3,2(u‬‬
‫ضم الفترب )‪[0.3, 0.5‬ج ك لك فاو الدالة )‪ N4,1(u‬ب يساوي لفر ضم الفترب‬
‫)‪ [0.5, 0.6‬و ي تساوي ‪ ,6 - 10u‬حيث او ‪ (6 - 10u)2‬و بز ب يساوي لفر‬
‫م )‪ N3,2(u‬ضم الفترب )‪[0.5, 0.6‬ج‬

‫‪347‬‬
‫اساسيات الرسم بالحاسوب‬

‫شكل ‪ : 10.26‬اشتراك الدوال بنتاج دوال اساسية اقرىج‬

‫‪348‬‬
‫اساسيات الرسم بالحاسوب‬

‫الفصل الحادي عشر‬

‫دوال جاهزة‬

‫‪ 11.1‬المقدمة‬
‫رسومات )‪ (C, C++‬التي تستخدم دوال ‪ graphics.h‬من الممكان ان تساتخدم لرسام‬
‫مختلف االشكال‪ ،‬عرض النصاوص‪ ،‬تغييار االلاوان وعيرهاا الكثيار‪ .‬اساتخدام دوال‬
‫‪ graphics.h‬فاي مترجماات ‪ turbo c‬تمكناك مان كتاباة بارامج الرساوم‪ ،‬الحركاة‪،‬‬
‫مشاااريع والعاااب‪ .‬ماان الممكاان رساام خطااوط‪ ،‬دوائاار‪ ،‬مسااتطيالت‪ ،‬شاارائح‪ ،‬اشااكال‬
‫هندسااية وكثياار عيرهااا‪ .‬م ان الممكاان تغياار لااون الرساام والخلفيااة باسااتخدام الاادوال‬
‫المتوفرة وما االشاكال باالوان‪ .‬فاي ماا يلاي قائماة ماع شارح مختصار لادوال الملاف‬
‫الراسي ‪ graphics.h‬المبنية داخليا‪:‬‬

‫‪ .1‬رسم القوس ‪arc‬‬

‫دالة القوس تستخدم لرسم قوس يكون مركازه فاي النقطاة ‪ ،(x, y)،‬علاى ان‬
‫يتم تحديد زاوية البداية‪ ،‬زاوية النهاية‪ ،‬ونصف قطر القوس‪ .‬دالة القوس من‬
‫الممكاان ان تسااتخدم لرساام دائاارة‪ ،‬لكاان هنااا سااتكون زاويااة البدايااة هااي ‪0‬‬
‫وزاوية النهاية هي ‪ .360‬الدالة تكتب كمايلي‬

‫‪349‬‬
‫اساسيات الرسم بالحاسوب‬

‫مثال‬
#include <graphics.h>
#include <conio.h>

main()
{
int gd = DETECT, gm;

initgraph(&gd, &gm, "C:\\TC\\BGI");

arc(100, 100, 0, 135, 50);

getch();
closegraph();
return 0;
}

350
‫اساسيات الرسم بالحاسوب‬

‫في المثال اعاله فان )‪ (100, 100‬تمثال مركاز القاوس الاذي يبادأ بالزاوياة ‪ 0‬وينتهاي‬
‫بالزاوية ‪ ،135‬ونصف قطره ‪.50‬‬

‫‪ .2‬الشريط ‪bar‬‬
‫دا لة الشريط تستخدم لرسم شاريط مساتطيل ثناائي االبعااد مملاوء‪ .‬احاداثيات الزاوياة‬
‫العليا اليسرى والزاوية السفلى اليمنى مطلوبة لرسم الشريط‪ .‬دالة رسم الشريط هي‬

‫من الممكن استخدام دوال لم الشريط بنماذ او الوان محددة‪ ،‬سناتي عليها الحقا‪.‬‬
‫مثال‬

‫>‪#include <graphics.h‬‬
‫>‪#include <conio.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫‪351‬‬
‫اساسيات الرسم بالحاسوب‬

‫;)‪bar(100, 100, 200, 200‬‬

‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬

‫‪ .3‬االشرطة ثالثية االبعاد ‪bar3d‬‬

‫دالااة الشااريط ثالثااي االبعاااد تسااتخدم لرساام شااريط مسااتطيل ثالثااي االبعاااد‬
‫مملااوء‪ .‬احااداثيات الزاويااة العليااا اليساارى والزاويااة الساافلى اليمنااى مطلوبااة‬
‫لرسم الشريط‪ .‬دالة رسم الشريط هي‬

‫الحظ ان قيمة ‪ topflag‬اذا كانت ال تساوي صفر فاان ساطح ثالثاي االبعااد‬
‫يوضع‪ ،‬بخالف ذلك ال يوضع‪.‬‬
‫‪352‬‬
‫اساسيات الرسم بالحاسوب‬

‫من الممكن استخدام دوال لم الشريط بنماذ او الوان محددة‪ ،‬سناتي عليها الحقا‪.‬‬
‫مثال‬

‫>‪#include<graphics.h‬‬
‫>‪#include<conio.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫;)‪bar3d(100, 100, 200, 200, 20, 1‬‬

‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬

‫‪ .4‬رسم متعدد االضالع ‪drawpoly‬‬


‫هذه الدالة تساتخدم لرسام متعادد االضاالع (مثلاث‪ ،‬مساتطيل‪ ،‬شاكل خماساي‬
‫االضالع ‪ ،‬سداسي وهكذا)‪ .‬دالة رسم متعدد االضالع هي‬

‫‪353‬‬
‫اساسيات الرسم بالحاسوب‬

‫الحظ هنا اذا كان المطلوب مثال رسم مثلث فان عدد رؤوس المثلث كما هو‬
‫معاروف هاي ثاالث )‪ (n = 3‬لاذلك فاان )‪ ،(num = 3+1 = 4‬وبالنسابة‬
‫لمصاافوفة النقاااط فهااي مصاافوفة ماان نااوع االعااداد الصااحيحة تحتااوي علااى‬
‫)‪ (2n‬ماان االعااداد الصااحيحة بحيااث يااتم اسااتخدام كاال زوجااين متجاااورين‬
‫لتماثالن احاداثيات واحاد مان الارؤوس )‪ ،(x, y‬فماثال لاو عرفناا المصافوفة‬
‫التالية لتمثل احداثيات المثلث كما يلي‪:‬‬

‫;}‪int points[] = { 320, 150, 420, 300, 250, 300, 320, 150‬‬

‫هنااا سااتكون النقاااط التاليااة تمثاال احااداثيات المثلااث وهااي ‪((320, 150),‬‬
‫))‪ ,(420, 300), (250, 300‬الحظ هناا ان اول نقطاة فاي المصافوفة هاي‬
‫نفسها اخر نقطة في المصفوفة وذلك الن الرسم سيولد شكل مغلق‪.‬‬

‫مثال‬
‫>‪#include <graphics.h‬‬
‫>‪#include <conio.h‬‬

‫‪354‬‬
‫اساسيات الرسم بالحاسوب‬

main()
{
int gd=DETECT,gm,points[]={320,150,420,300,250,300,320,150};

initgraph(&gd, &gm, "C:\\TC\\BGI");

drawpoly(4, points);

getch();
closegraph();
return 0;
}

fillellipse ‫ م الشكل البيضوي‬.5


‫هذه الدالة تم الشكل البيضوي بلون معين‬

355
‫اساسيات الرسم بالحاسوب‬

‫مثال‬

‫>‪#include <graphics.h‬‬
‫>‪#include <conio.h‬‬

‫)(‪int main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫;)‪fillellipse(100, 100, 50, 25‬‬

‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬

‫‪ .6‬م متعدد االضالع ‪fillpoly‬‬


‫تقاوم هااذه الدالااة بما متعاادد االضااالع باااللون الحاالي او بنمااوذ ماان الدالااة‬
‫‪ setfillstyle‬التااي سااناتي عليهااا الحقااا‪ .‬طريقااة اسااتخدام هااذه الدالااة مشاااب‬
‫لدالة )‪ (drawpoly‬وهي‬

‫‪356‬‬
‫اساسيات الرسم بالحاسوب‬

‫مثال‬
#include <graphics.h>
#include <conio.h>

main()
{
int gd=DETECT,gm,points[]={320,150,440,340,230,340,320,150};

initgraph(&gd, &gm, "C:\\TC\\BGI");

fillpoly(4, points);

getch();
closegraph();
return 0;
}

357
‫اساسيات الرسم بالحاسوب‬

‫‪ .7‬م مساحة مغلقة ‪floodfill‬‬


‫هذه الدالة تستخدم لم الشاكل المغلاق بلاون‪ .‬طريقاة كتاباة هاذه الدالاة تكاون بالشاكل‬
‫التالي‬

‫الحظ هنا اذا اختيرت النقطة )‪ (x, y‬خار المساحة المغلقة فان منطقاة الخلفياة هاي‬
‫التاي تلاون بينماا الشاكل المغلاق ال يلاون‪ ,‬اماا اذا كانات النقطاة )‪ (x, y‬داخال الشاكل‬
‫المغلق فان الشكل المغلق حصرا سيتم م ه باللون‪.‬‬

‫مثال‬
‫>‪#include <graphics.h‬‬
‫>‪#include <conio.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫‪358‬‬
‫اساسيات الرسم بالحاسوب‬

setcolor(RED);
circle(100,100,50);
floodfill(100,100,RED);

getch();
closegraph();
return 0;
}

getbkcolor() ‫ معرفة لون الخلفية‬.8


.‫هذه الدالة تعيد لون الخلفية وهي تعيدها على شكل رقم صحيح‬

‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm, bkcolor;

initgraph(&gd,&gm,"C:\\TC\\BGI");

bkcolor = getbkcolor();

cout << "Current background color "<< bkcolor ;

359
‫اساسيات الرسم بالحاسوب‬

getch();
closegraph();
return 0;
}

getcolor() ‫ معرفة اللون الحالي‬.9


‫تعيااد هااذه الدالااة اللااون الحااالي للرساام علااى شااكل رقاام صااحيح يمثاال القيمااة‬
.‫اللونية‬

‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm, drawing_color;

initgraph(&gd,&gm,"C:\\TC\\BGI");

drawing_color = getcolor();

cout << "Current drawing color "<< drawing_color ;

getch();
closegraph();

360
‫اساسيات الرسم بالحاسوب‬

‫;‪return 0‬‬
‫}‬

‫‪ .10‬معرفة اكبر عدد لاللوان )(‪getmaxcolor‬‬


‫تعيد هاذه الدالاة قيماة العادد االكبار لاللاوان لطاور الرساوم الحاالي وبرناامج‬
‫تشغيل الرسوم‪ .‬العدد الكلي المتوفر لطور الرسوم الحالي وبرنامج التشاغيل‬
‫يكون مساوي للعدد المعاد مضاف لا واحاد وذلاك الن قايم االلاوان تبادأ مان‬
‫الصفر‪.‬‬

‫مثال‬
‫>‪#include<graphics.h‬‬
‫>‪#include<conio.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm, max_colors‬‬

‫;)"‪initgraph(&gd,&gm,"C:\\TC\\BGI‬‬

‫;)(‪max_colors = getmaxcolor‬‬

‫‪cout << "Maximum number of colors for current graphics mode and‬‬
‫; ‪driver = “ << max_colors+1‬‬

‫;)(‪getch‬‬

‫‪361‬‬
‫اساسيات الرسم بالحاسوب‬

closegraph();
return 0;
}

getpixel ‫معرفة لون عنصر صورة محددة‬.11


‫تستخدم هاذه الدالاة لمعرفاة لاون عنصار الصاورة المحادد باالحاداثيات التاي‬
‫( وتكتب الدالة بالصيغة‬x, y) ‫بين القوسين‬
getpixel(int x, int y);

‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm, color;

initgraph(&gd,&gm,"C:\\TC\\BGI");

color = getpixel(0, 0);

cout << "color of pixel at (0,0) = " << color ;

getch();
closegraph();

362
‫اساسيات الرسم بالحاسوب‬

return 0;
}

getx() ,x ‫ج دالة استرباع ويمة ابحداثي‬12


‫ اي ال ي يكوو وليه مؤشر الرسلج‬،‫ الحالي‬x ‫تعيد ه الدالة ويمة ابحداثي‬

‫مثال‬
#include <graphics.h>
#include <conio.h>

main()
{
int gd = DETECT, gm;

initgraph(&gd, &gm, "C:\\TC\\BGI");

cout<< "Current position of x = " << getx() ;

getch();
closegraph();
return 0;
}

363
‫اساسيات الرسم بالحاسوب‬

‫)(‪gety‬‬ ‫‪13‬ج استرباع ويمة ابحداثي ‪،y‬‬


‫تعيد ه الدالة ويمة ابحداثي ‪ y‬الحالي‪ ،‬اي ال ي يكوو وليه مؤشر الرسلج‬

‫مثال‬

‫>‪#include <graphics.h‬‬
‫>‪#include <conio.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫; )(‪cout<< "Current position of y = " << gety‬‬

‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬

‫‪.14‬رسم خط ‪line‬‬
‫تسااتخدم هااذه الدالااة لرساام خااط مسااتقيم بااين نقطتااين‪ ،‬تكتااب الدالااة بالطريقاة‬
‫التالية‬

‫‪364‬‬
‫اساسيات الرسم بالحاسوب‬

‫مثال‬
#include <graphics.h>
#include <conio.h>

main()
{
int gd = DETECT, gm;

initgraph(&gd, &gm, "C:\\TC\\BGI");

line(100, 100, 200, 200);

getch();
closegraph();
return 0;
}

365
‫اساسيات الرسم بالحاسوب‬

‫‪.15‬التحرك الى موقع معين ‪moveto‬‬


‫هذه الدالة تغير الموقع الحالي الى موقع جديد حسب االحداثيات المحددة فاي‬
‫الدالة‪ .‬من الممكن ان نفكر بها (افتراضا لغرض التقريب) علاى انهاا تحارك‬
‫قلم الرسم الى موقع جديد محدد بالدالة‪ .‬وهي تكتب كما يلي‬

‫;)‪moveto (int x, int y‬‬

‫مثال‬
‫>‪#include <graphics.h‬‬
‫>‪#include <conio.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫;)(‪cout<< "X =” << getx‬‬

‫;)(‪cout<< << “Y = " << gety‬‬

‫;)‪moveto(50, 50‬‬

‫;)(‪cout<< "X =” << getx‬‬

‫‪366‬‬
‫اساسيات الرسم بالحاسوب‬

‫;)(‪cout<< << “Y = " << gety‬‬


‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬

‫‪.16‬رسم خط من الموقع الحالي الى نقطة محددة على الشاشة ‪lineto‬‬


‫تستخدم هذه الدالة لرسم خط مان الموقاع الحاالي (الموقاع الاذي عليا مؤشار‬
‫الرسم) الى نقطة محددة على الشاشة محددة باالحداثيات )‪.(x, y‬‬

‫; )‪lineto (x, y‬‬

‫مثال‬
‫>‪#include<graphics.h‬‬
‫>‪#include<conio.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫;)‪moveto(100, 100‬‬
‫;)‪lineto(200, 200‬‬

‫;)(‪getch‬‬

‫‪367‬‬
‫اساسيات الرسم بالحاسوب‬

‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬
‫‪ .17‬رسم خط نسبة الى الموقع الحالي ‪linerel‬‬
‫تستخدم هذه الدالة لرسم خط من الموقع الحالي الاى نقطاة تبعاد بمقادار ‪(x,‬‬
‫)‪ y‬نسبة للموقع الحالي‪ ,‬بعدها يتم تقديم الموقع الحالي بمقدار )‪ .(x, y‬الدالة‬
‫تكتب كما يلي‬

‫مثال‬
‫>‪#include <graphics.h‬‬
‫>‪#include <conio.h‬‬

‫)(‪main‬‬
‫{‬

‫‪368‬‬
‫اساسيات الرسم بالحاسوب‬

‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫;)‪moveto(250, 250‬‬
‫;)‪linerel(100, -100‬‬

‫;)(‪getch‬‬
‫;)(‪closegraph‬‬
‫;‪return 0‬‬
‫}‬
‫‪.18‬التحرك نسبة الى الموقع الحالي ‪moverel‬‬
‫التحاارك بمسااافة )‪ (x, y‬نساابة الااى الموقااع الحااالي‪ .‬تكتااب الدالااة بالطريق اة‬
‫التالية‬

‫‪369‬‬
‫اساسيات الرسم بالحاسوب‬

‫مثال‬
#include <graphics.h>
#include <conio.h>

main()
{
int gd = DETECT, gm, x, y;

initgraph(&gd, &gm, "C:\\TC\\BGI");

moveto(100, 100);
moverel(100, -100);

x = getx(); // ‫تستخدم لمعرفة الموقع الجديد‬


y = gety();

cout << "Current x position =\n “ << x ;


cout << "Current y position =\n “ << y ;

getch();
closegraph();
return 0;
}

370
‫اساسيات الرسم بالحاسوب‬

outtext ‫ عرض نق‬.19


‫تساتخدم هاذه الدالااة لعارض او طباعااة ناق معااين علاى الشاشااة فاي الموقااع‬
‫ تكتب الدالة كما يلي‬,‫الحالي‬

‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm;

initgraph(&gd, &gm, "C:\\TC\\BGI");

outtext("To display text at a particular position on the screen use


outtextxy");

getch();
closegraph();
return 0;
}

371
‫اساسيات الرسم بالحاسوب‬

outtextxy ‫ عرض نق في موقع محدد من الشاشة‬.20


‫ تكتاب‬.‫تستخدم هذه الدالة لعرض او طباعة نق على الشاشاة بموقاع محادد‬
‫الدالة كما يلي‬

‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm;

initgraph(&gd,&gm,"C:\\TC\\BGI");

outtextxy(100, 100, "Outtextxy function");

getch();
closegraph();
return 0;
}

372
‫اساسيات الرسم بالحاسوب‬

‫‪.21‬رسم مستطيل ‪rectangle‬‬


‫تهدف هذه الدالة الى رسام مساتطيل وفقاا الحاداثيات الزاوياة العلياا اليسارى‬
‫واحداثيات الزاوية السفلى اليمنى المحددة في الدالة‪ .‬وهي تكتب كما يلي‬

‫مثال‬
‫>‪#include<graphics.h‬‬
‫>‪#include<conio.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫;)‪rectangle(100,100,200,200‬‬

‫‪373‬‬
‫اساسيات الرسم بالحاسوب‬

getch();
closegraph();
return 0;
}
sector ‫دالة القطع‬.22
‫ تكتب الدالة كما يلي‬.‫ترسم هذه الدالة مقطع او شريحة بيضوية مملوءة‬

‫مثال‬
#include <graphics.h>
#include <conio.h>

main()
{
int gd = DETECT, gm;

initgraph(&gd, &gm, "C:\\TC\\BGI");

sector(100, 100, 0, 135, 25, 35);

374
‫اساسيات الرسم بالحاسوب‬

getch();
closegraph();
return 0;
}

setbkcolor ‫ ضبط لون الخلفية‬.23


‫تعمل هذه الدالاة علاى تغييار او ضابط لاون الخلفياة وفقاا للاون محادد ضامن‬
‫ تكتب الدالة كما يلي‬.‫الدالة‬
setbkcolor (int color);
‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");

outtext("Press any key to change the background color to GREEN.");


getch();

setbkcolor(GREEN);

getch();
closegraph();
return 0;

375
‫اساسيات الرسم بالحاسوب‬

}
setcolor ‫ضبط لون الرسم‬.24
‫ تكتب كما يلي‬,‫تضبط هذه الدالة لون الرسم وفقا للون المحدد فيها‬

setcolor (int color);


‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");

circle(100,100,50); /* ‫* رسم دائرة بلون ابيض‬/


setcolor(RED);
circle(300,300,50); /* ‫* رسم دائرة بلون احمر‬/

getch();
closegraph();
return 0;
}

376
‫اساسيات الرسم بالحاسوب‬

‫‪ .25‬ضبط نموذ ولون االمالء ‪setfillstyle‬‬


‫هذه الدالة تقوم بما الشاكل بنماوذ او لاون محادد‪ .‬هنااك العدياد مان نمااذ‬
‫االمالء ندرجها في ادناه (من الممكن تجربتها للتعرف عليها بشكل افضال)‪.‬‬
‫تكتب الدالة كما يلي‬

‫اسماء النماذ التي من الممكن استخدامها‬


‫‪enum fill_styles‬‬
‫{‬
‫‪EMPTY_FILL,‬‬
‫‪SOLID_FILL,‬‬
‫‪LINE_FILL,‬‬
‫‪LTSLASH_FILL,‬‬
‫‪SLASH_FILL,‬‬
‫‪BKSLASH_FILL,‬‬
‫‪LTBKSLASH_FILL,‬‬
‫‪HATCH_FILL,‬‬
‫‪XHATCH_FILL,‬‬
‫‪INTERLEAVE_FILL,‬‬
‫‪WIDE_DOT_FILL,‬‬

‫‪377‬‬
‫اساسيات الرسم بالحاسوب‬

CLOSE_DOT_FILL,
USER_FILL
};

‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm;

initgraph(&gd, &gm, "C:\\TC\\BGI");

setfillstyle(0, RED);
circle(100, 100, 50);
floodfill(100, 100, WHITE);

getch();
closegraph();
return 0;
}
setlinestyle ‫ تحديد نوعية الخط‬.26
‫ وهي تستخدم مع عدد من‬,‫تحدد هذه الدالة نوعية الخط المستخدم في الرسم‬
.(line, lineto, rectangle, drawpoly) ‫دوال رسم الخطوط مثل‬
378
‫اساسيات الرسم بالحاسوب‬

‫نوعية الخط يحدد كمايلي (ان ‪ enum‬تعطي ارقام تسلسلية لمتغيراتها‬


‫ابتداء من الصفر)‪ ,‬حيث من الممكن ان نستخدم على سبيل المثال لنوعية‬
‫الخط )‪ (SOLID_LINE‬او الرقم الذي يقابل وهو صفر‪.‬‬

‫‪enum line_styles‬‬
‫{‬
‫‪SOLID_LINE,‬‬ ‫خط متصل ‪//‬‬
‫‪DOTTED_LINE,‬‬ ‫‪//‬‬ ‫خط منقط‬
‫‪CENTER_LINE,‬‬ ‫‪//‬‬ ‫خط مقطع بين كل قطعتين نقطة‬
‫‪DASHED_LINE,‬‬ ‫‪//‬‬ ‫خط مقطع‬
‫‪USERBIT_LINE‬‬ ‫خاص بخطوط من تصميم المستخدم ‪//‬‬
‫;}‬

‫‪ ‬الحقل الثاني محدد لالستخدام مع االختيار االخير لنوع الخط فقط‬


‫)‪ ،(USERBIT_LINE‬وهي واحدة من الميزات الجميلة في الرسم حيث‬
‫سيتم وضع رقم مكون من ‪ 16‬بت (الرقم ممثل بالنظام السادس عشر)‪ ،‬وسيتم‬
‫رسم الخط وذلك باضاءة عناصر الصورة التي تقابل البت الذي يحمل القيمة‬

‫‪379‬‬
‫اساسيات الرسم بالحاسوب‬

‫واحد في الرقم بينما التضيء البت الذي يحمل القيمة صفر وبالتالي سنتمكن‬
‫من رسم خطوط باشكال مختلفة‪ .‬فمثال الرقم )‪ (0xFFFF‬ترسم خط مستمر‪،‬‬
‫بينما الرقم )‪ (0x3333‬سترسم خط متقطع وهكذا‪.‬‬
‫‪ ‬الحقل االخير هو يمثل سمك الخط حيث ان السمك يحدد بعدد من عناصر‬
‫الصورة والرقم الذي يوضع في هذا الحقل يحدد سمك الخط بعنصر صورة‪.‬‬

‫مثال‬
‫>‪#include <graphics.h‬‬

‫)(‪main‬‬
‫{‬
‫;‪int gd = DETECT, gm, c , x = 100, y = 50‬‬

‫;)"‪initgraph(&gd, &gm, "C:\\TC\\BGI‬‬

‫) ‪for ( c = 0 ; c < 5 ; c++‬‬


‫{‬
‫;)‪setlinestyle(c, 0, 2‬‬

‫;)‪line(x, y, x+200, y‬‬


‫;‪y = y + 25‬‬
‫}‬

‫;)(‪getch‬‬
‫;)(‪closegraph‬‬

‫‪380‬‬
‫اساسيات الرسم بالحاسوب‬

‫;‪return 0‬‬
‫}‬
‫‪.27‬ضبط صيغة النصوص ‪Settextstyle‬‬
‫هذه الدالة تضبط او تغير طريقة عرض النصوص على الشاشة‪ ،‬حياث انهاا‬
‫تحدد حجم الحروف‪ ،‬اتجاه طباعة النق‪ ،‬وتغييار نوعياة الخاط‪ .‬تكتاب هاذه‬
‫الدالة كما يلي‬

‫اتجاه الخط من الممكن ان يكون على نوعين‬


‫‪ HORIZ_DIR‬وهو من اليسار الى اليمين‬
‫‪ VERT_DIR‬وهو من االسفل الى االعلى‬
‫اما بالنسبة لنوعية الخط‪ ،‬من الممكن اختيار واحد من هذه االنواع‬
‫‪enum font_names‬‬
‫{‬
‫‪DEFAULT_FONT,‬‬
‫‪TRIPLEX_FONT,‬‬
‫‪SMALL_FONT,‬‬
‫‪SANS_SERIF_FONT,‬‬
‫‪GOTHIC_FONT,‬‬
‫‪SCRIPT_FONT,‬‬

‫‪381‬‬
‫اساسيات الرسم بالحاسوب‬

SIMPLEX_FONT,
TRIPLEX_SCR_FONT,
COMPLEX_FONT,
EUROPEAN_FONT,
BOLD_FONT
};
‫مثال‬
#include <graphics.h>
#include <conio.h>

main()
{
int gd = DETECT, gm, x = 25, y = 25, font = 0;

initgraph(&gd,&gm,"C:\\TC\\BGI");

for (font = 0; font <= 10; font++)


{
settextstyle(font, HORIZ_DIR, 1);
outtextxy(x, y, "Text with different fonts");
y = y + 25;
}

getch();
closegraph();

382
‫اساسيات الرسم بالحاسوب‬

‫;‪return 0‬‬
‫}‬
‫‪ .28‬تحديد نافذة العرض ‪setviewport‬‬
‫تستخدم هذه الدالة لتحديد مخرجات الرسم ضمن مساحة محددة من الشاشة‪.‬‬
‫تكتب هذه الدالة كما يلي‬

‫فاذا قلنا‬
‫;)‪setviewport (100 , 100, 200, 200, 1‬‬

‫فهذا يعني اننا سنحدد جميع فعاليات الرسم التي ستظهر على الشاشة لتكاون‬
‫ضمن المستطيل ;)‪(100 , 100, 200, 200, 1‬‬

‫‪383‬‬
‫اساسيات الرسم بالحاسوب‬

‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm, midx, midy;

initgraph(&gd, &gm, "C:\\TC\\BGI");

midx = getmaxx()/2;
midy = getmaxy()/2;

setviewport(midx - 50, midy - 50, midx + 50, midy + 50, 1);


circle(50, 50, 55);

getch();
closegraph();
return 0;
}
textheight ‫ارتفاع النق‬.29
‫تعيااد هااذه الدالااة ارتفاااع الاانق مقاااس بعنصاار الصااورة الااذي يكتااب ضاامن‬
‫ الدالة تكتب بالطريقة التالية‬.‫الدالة‬

textheight(char *string);
384
‫اساسيات الرسم بالحاسوب‬

‫مثال‬
#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm, height;

initgraph(&gd, &gm, "C:\\TC\\BGI");

height = textheight("C programming");

outtext(height);

getch();
closegraph();
return 0;
}
textwidth ‫ عرض النق‬.30
‫ تكتااب هااذه الدالااة‬.‫تعيااد هااذه الدالااة عاارض الاانق مقاااس بعنصاار الصااورة‬
‫بالطريقة التالية‬

textwidth(char *string);

385
‫اساسيات الرسم بالحاسوب‬

‫مثال‬
#include <stdio.h>
#include <graphics.h>
#include <conio.h>

int main()
{
int gd = DETECT, gm, width;

initgraph(&gd, &gm, "C:\\TC\\BGI");

width = textwidth("C programming");

outtext(width);

getch();
closegraph();
return 0;
}

386
‫اساسيات الرسم بالحاسوب‬

REFRENCES ‫المصا ر‬

1. Max K.Agoston, Computer graphics and geometric


modeling:implementation & algorithms، Springer-Verlag
London Limited 2005, Printed in the USA.

2. John Vince, Mathematics for Computer Graphics, 4th


edition, Springer-Verlag London 2014, USA

3. Steven J. Gortler, Foundations of 3D Computer


Graphics, MIT Press, 2012.

4. Julio Sanchez & Maria P. Canton, The PC Graphics


Handbook, CRC PRESS, 2003.

5. Frank Klawonn, Introduction to Computer Graphics


Using Java 2D and 3D, Springer-Verlag London
Limited 2008
6. David Salomon, Transformations and Projections in
Computer Graphics, Springer-Verlag Berlin Heidelberg,
2006.

387
‫اساسيات الرسم بالحاسوب‬

7. Philip J. Schneider, David H. Eberly, Geometric Tools


for Computer Graphics, 2nd edition, Elsevier Science
(USA), 2003.

8. C. Pozrikidis, Introduction to C++ Programming and


Graphics, Springer Science+Business Media, LLC,
2007.

9. John Vince, Mathematicsfor ComputerGraphics, 3rd


edition, Springer-Verlag London Limited 2010.

10. Peter Shirley, Steve Marschner, Fundamentals of


Computer Graphics, 4th edition, Publisher: A K
Peters/CRC Press, 2015.

388
‫اساسيات الرسم بالحاسوب‬

‫‪389‬‬

You might also like