Professional Documents
Culture Documents
اساسيات الرسم بالحاسوب
اساسيات الرسم بالحاسوب
2
اساسيات الرسم بالحاسوب
3
اساسيات الرسم بالحاسوب
العبادي ،نضال
أساسيات الرسم بالحاسوب
رقم اإليداع في دار الكتب والوثائق -بغداد(381( )/40882017( :
رقم التصنيف620.0040285 :
الواصفات/ :الهندسة / /الرسم الهندسي األولي / /الرسم بمساعدة الحاسوب.
تم إعداد بيانات الفهرسة والتصنيف األولية من قبل دار الذاكرة للنشر والتوزيع
الطبعة األولى
2018
حقوق الطبع محفوظة للناشر
4
اساسيات الرسم بالحاسوب
5
اساسيات الرسم بالحاسوب
المحتويات
المقدمة17 ......................................................................................
المتجهات18 ...................................................................................
المصفوفات 24 ................................................................................
تطبيقات رسوم الحاسوب27 ................................................................
التوليد32 .......................................................................................
ما هو عنصر الصورة في رسوم الحاسوب33 ..........................................
الصورة النقطية والمتجهة36 ...............................................................
التعريف وشدة الوضوح38 .................................................................
االلوان االساسية 39 ..........................................................................
تقنيات العرض 43 ............................................................................
شاشات العرض46 ...........................................................................
الصور الرقمية52 ............................................................................
تمثيل الصور الرقمية 53 ....................................................................
احداثيات شبكة الشاشة55 ...................................................................
بعض الدوال والمالحظات البرمجية المهمة 58 .........................................
المقدمة67 ......................................................................................
تعاريف67 .....................................................................................
تقنيات رسم النقطة68 ........................................................................
قياس النوعية لخوارزميات رسم خط جيد69 ............................................
رسم الخطوط72 ..............................................................................
خوارزمية 84 ........................................................................ DDA
خوارزمية برزنهام88 .......................................................................
المقدمة99 ......................................................................................
رسم الدائرة بطريقة االحداثيات الديكارتي 100 .........................................
طريقة االقطاب 102 .........................................................................
التناظر 105 ...................................................................................
طريقة الزيادة 106 ...........................................................................
خوارزمية النقطة الوسطى110 ............................................................
الشكل البيضوي118 .........................................................................
المقدمة137 ....................................................................................
انواع التحويالت 137 ........................................................................
النقل138 .......................................................................................
التحجيم 140 ...................................................................................
7
اساسيات الرسم بالحاسوب
التدوير146 ....................................................................................
السحب153 ....................................................................................
االنعكاس 156 .................................................................................
المصفوفة المتجانسة 164 ...................................................................
المقدمة183 ....................................................................................
ابعاد الصورة184 ............................................................................
الرسوم ثالثية االبعاد184 ...................................................................
التحويالت188 ................................................................................
النقل188 .......................................................................................
التحجيم 189 ...................................................................................
التدوير190 ....................................................................................
سحب الشكل ثالثي االبعاد 204 ............................................................
االنعكاس في النظام الثالثي االبعاد 206 ..................................................
المقدمة209 ....................................................................................
التعريف 209 ..................................................................................
نقاط التالشي 210 ............................................................................
انواع المساقط 211 ...........................................................................
8
اساسيات الرسم بالحاسوب
المقدمة238 ....................................................................................
انواع متعدد االضالع243 ..................................................................
النقاط في متعدد االضالع 244 .............................................................
خوارزمية امالء متعدد االضالع بلون معين 248 ......................................
المقدمة255 ....................................................................................
تعاريف256 ...................................................................................
تحويل نافذة المشهد الى نافذة العرض 257 ..............................................
خطوات تحويل نافذة المشهد الى نافذة العرض258 ....................................
المقدمة267 ....................................................................................
القطع 267 .....................................................................................
قطع النقطة269 ...............................................................................
قطع الخط 269 ................................................................................
قطع الخط المستقيم بطريقة كوهين-سوثرالند 271 .....................................
خوارزمية القطع بطريقة 289 ........................................ Lang-Barsky
9
اساسيات الرسم بالحاسوب
المقدمة301 ....................................................................................
متعدد الحدود 302 ............................................................................
معادلة المعامالت 303 .......................................................................
منحنيات بيزر 306 ...........................................................................
التعريف العام لمنحنيات بيزر 311 ........................................................
الشريحة 314 ....................................................................... spline
منحني الشرائح االساس 315 ...............................................................
10
اساسيات الرسم بالحاسوب
11
اساسيات الرسم بالحاسوب
المقدمة
الحمد هلل الحي القيوم ،الباقي وغيره ال يدوم ،رفع السماء وزينها بالنجوم ،وامسو
بجبال في الالتوم ،صور بقدرته هذ ِه الجسوم ،ثم أماتها ومحا الرسوم ،ثم األر
ر إلل نار السموم،
ر إلل ار الن يم وفري ٌ
ينفخ في الصور فسكا الميت يقوم ،ففري ٌ
الحمد هلل الذي لواله ما جرى قلم ،وال تكلم لسان ،والصالة والسالم على سيدنا
محمد سيد المرسلين وامام المتقين وعلى آلة وصحبه الطاهرين ،الحمد هللا الذي
أنار عقولنا ،ويسر طريقنا ،وشغل أوقاتنا بما ينفعنا ،نحمده تعالى ونشكره.
12
اساسيات الرسم بالحاسوب
او التطور في رسول الحاسوب بعل الحواسي أسهل للتفاول معها ،وأفضل للفهل
وتفسير ودب انواع م البيانا ج التطور في رسول الحاسوب كاو له تأثير وميع
ولى العديد م وسائل ابوعل وأحدث ثورب في لناوة الرسول المتحركة والعاب
الفيديوج وادب ،رسول الحاسوب مصطلح يشير الى ودب اشيا :تمليل وتحوير بيانا
الصورب بواسطة الحاسوب ،ماتلف التقنيا التي تستادل لالع ومعالجة الصور،
انتاج الصور ،وفرع م ولول الحاسوب ال ي يدرس طرق الصناوة الرومية
ومعالجة المحتويا الروميةج
ببد م ابشارب الى او ابشاا ال ي يعملوو في مجال رسول الحاسوب م
المفروض او يكوو لهل اساس ووي في مجال الرياضيا ،لكي يستغلوو ه
ابمكانيا في حل المشاكلج م قعل تجربتي فاو غالبية الناس لهل ابستعداد
لزيادب مهاراتهل الرياضية ولى اسس ماصصة تبعا للمشكلة المطروحةج م
المحتمل او ب يكوو لهل وصد بو يكونوا ماتصي في مجال الرياضيا ،ومع ذلك
فانهل مستمروو بدراسة الرياضيا وتطبيع افكار اج
لغرض التوضيح فاو ا الكتاب و ليس كتاب رياضيا ج ول لك فاو القارئ وليه
او ب يقلع م مستواه او امكانياته في الرياضيا ،حيث او ا الكتاب ماصص
العاملي في رسول الحاسوب وال ي يعلموو او وليهل او يستادموا لألشاا
الرياضيا في اومالهل اليومية وليس م المفروض او يكونوا قبرا في البديهيا
والنظريا والحقائع الرياضيةج
ا الكتاب و شرح المفا يل ابساسية لرسول الحاسوب بدمجها مع الهدف م
تطبيقا مباشرب وامللة بسيطة لتوضيح ابفكار الواردب في ا الكتابج ك لك تل
دمج النظريا مع ابمللة التقنية لتمكي القارئ تطبيع المفا يل التقنية بشكل مباشر
وإلظهار فهل ماذا تعني ه المفا يلج
ا الكتاب مفيد لطلبة اوسال وكليا الحاسوب في الدراسة ابولية وك لك مفيد للتعلل
ال اتي لمبادئ ومفا يل الرسل بالحاسوب فضع و ابشاا الماتصي في مجال
ولول الحاسوبج المتطلبا ابولية تتضم معرفة اساسية في الرياضيا
والمتجها ج في ا الكتاب تل الحر ولى او يتضم ودد م ابمللة والبرامج
13
اساسيات الرسم بالحاسوب
نضال ال با ي
النجف األشرذ /ال راق 2018
comp_dep_educ@yahoo.com
14
اساسيات الرسم بالحاسوب
المؤلف باوتصار:
15
اساسيات الرسم بالحاسوب
16
اساسيات الرسم بالحاسوب
الفص االول
مدخل الى رسوم الحاسوب
1.1المقدمة
17
اساسيات الرسم بالحاسوب
في ا الفصل سنركز ولى بعض المفا يل العامة والتي لها دور مهل في فهل رسول
الحاسوب وفهل العمليا التي سنتطرق لها في الفصول العحقةج
18
اساسيات الرسم بالحاسوب
يملل المتجه ندسيا بقطعة مستقيل ،كما في الشكل ،1.2حيث او النقطة ) (Aي
نقطة البداية التأثير للمتجه والنقطة ) (Bي نقطة النهاية ،ويرمز للمتجه
او باستادال حرف واحد يُكت باستادال حرفي يوضع فووهما سهل ملل الرمز
باط سميك وغامع ملل ) (Sأو باستادال حرف واحد يوضع فووه رسل سهل ملل
ج
المتجها توضح كيفية الحركة م نقطة الى اقرىج الشي المهل و او المتجه له
طول وله اتجاهج
مقدار المتجه و وبارب و طول ا المتجه ،فيملل الطول مقدار الكمية فقط ،وأما
اتجاه المتجه فيملل ابتجاه للكمية ال ُمقاسة في الفضا والتي يتل تحديد ا و طريع
زوايا اويلر(Euler).
المتجها مهمة بدا في رسول الحاسوب قصولا في ومليا التحويل التي
سناتي وليها بحقا ج
إليجاد متجه بي نقطتي ،ببساطة يتل طرح النقطتي ج
19
اساسيات الرسم بالحاسوب
20
اساسيات الرسم بالحاسوب
ناك ودد م العمليا المهمة التي نحتاج الى معرفة كيفية انجاز ا مع المتجها :
21
اساسيات الرسم بالحاسوب
حيث او
| | aيملل طول المتجه a
| | bيملل طول المتجه b
ي الزاوية بي المتجه aوالمتجه b
تمال الزاوية ل لك فهي وملية ضرب طول aفي طول bفي بي
المحصورب بينهما الشكل 1.7ج
23
اساسيات الرسم بالحاسوب
24
اساسيات الرسم بالحاسوب
ناك العديد م العمليا التي م الممك القيال بها مع المصفوفا ،في ادناه بعض
العمليا المهمة التي تجرى ولى المصفوفا والتي ربما نحتاج لها في رسول
الحاسوب:
25
اساسيات الرسم بالحاسوب
= Cij
26
اساسيات الرسم بالحاسوب
ناك مقولة تقول "الصورب أفضل م ألف كلمة" ،و ي للدبلة ولى امكانية
استادال الصور للتعبير و افكارنا وتوبهاتنا والكلير م المعلوما بطرق
رسومية بدل م الحديث ونها والتي احيانا ب يمك ايصال الفكرب بسهولة و
ا فاو الحاسوب استادل بشكل واسع الرسول للتعبير و طريع الكلما ،م
الكلير م المعلوما والبيانا في الحاسوبج
رسول الحاسوب تطبع في الصناوة ،الف ،التسلية ،التعليل ،الط ،الدفاع ،لور
ابومار الصناوية وغير ا الكليرج تطبيقا رسول الحاسوب م الممك تصنيفها
الى مجاميع رئيسية تملل غالبية تطبيقا الحاسوب وليس بميعهاج
27
اساسيات الرسم بالحاسوب
28
اساسيات الرسم بالحاسوب
.4التسلية Entertainment
لناوة ابفعل ،الصور المتحركة ،الموسيقى التصويرية ،وروض التلفزيووج م
الممك استادال الرسول في افعل الكارتوو المتحركة شكل 1.13ج
29
اساسيات الرسم بالحاسوب
.5صناعة االلعاب
تركز ولى التفاول بي المستادل والحاسوب ،ايجاد الحلول لموضوع الكلفة ،تجن
الحسابا الزائدب شكل 1.14ج
.6التعليم والتدريب
الحاسوب يولد نماذج م تجارب الفيزيا والكيميا ،انظمة مالية واوتصادية تستادل
كمساودا تعليميةج
ابنظمة الفسيولوبية ،ابتجا ا السكانية ،او ابهزب ملل الماططا الملونة التي
تساود المتدربي لفهل تشغيل النظالج ابهزب قالة تستادل برمجيا للتدري ،ملل
محاكاب ويادب السيارا ،السف ،الطائرا شكل 1.15ج
30
اساسيات الرسم بالحاسوب
.7التصورات Visualization
التصورا العلميةجج انتاج تمليع رسومية ألغراض ولمية ،ندسية ،ومجمووة
البيانا الطبية شكل 1.16ج
31
اساسيات الرسم بالحاسوب
32
اساسيات الرسم بالحاسوب
33
اساسيات الرسم بالحاسوب
ونالر الصورب في الصورب م الممك اوادب انتابها باي حجل م دوو ظهور
نقاط مرئية او مربعا ج
باقتصار فاو ونصر الصورب و ألغر وحدب وابلة للعنونة أي يحمل ونواو في
ال اكرب ج
وحيث او مسح الشاشة يتل م اليسار الى اليمي وم ابولى الى ابسفل ،فاو م
المعتاد ابشارب الى ونصر الصورب ال ي في الزاوية اليسرى العليا م الصورب
باستادال ابحداثيا ] [0,0و ا يعني او اتجاه محاور الصورب و كما يلي
اتجاه المحور Xو م اليسار الى اليمي ج
اتجاه المحور Yو م ابولى الى ابسفل ،قعفا لما و متعارف وليه في
الرياضيا ،حيث اتجاه المحور Yيكوو لألولىج
ه المربعا يسمى تايل لورب لسمكة ،ضع شبكة مربعا وليهاج كل واحد م
ونصر لوربج لازو ه الصورب فاو الحاسوب ببساطة يسجل رول يملل القيمة
اللونية لكل ونصر لورب مربع ،بحظ الشكل 1.21ج كلما زاد ودد المربعا في
الشبكة كلما كانت الصورب أكلر وضوحا ودوةج
34
اساسيات الرسم بالحاسوب
إذا مسكت مكبرب بالقرب م شاشة الحاسوب بدربة كافية ،فأنك م الممك او
ه ترى او الشاشة تتكوو م معيي م المربعا الصغيرب بداج كل واحد م
المربعا يسمى ونصر لورب ،وكل ونصر لورب م الممك او يملل بواحد م
معيي ابلواو ،ناك شدب اضا ب تظهر ولى الشاشة بألواو ماتلفةج م الممك
ايضا او ترى ونصر الصورب وند تكبير الصورب الى أكلر م ضعفي باستادال
الرسال ) (paintال ي في حاسبتك انظر الشكل 1.22والشكل 1.23ج
35
اساسيات الرسم بالحاسوب
الصور بشكل وال تنقسل الى نووي وفقا لطريقة قلقها او قزنها ،ولك تشترك
بصفة مهمة و ي اوتماد بميع الصور التي تعرض ولى الشاشة ولى فكرب
استادال ونصر الصورب ،ويتل التعامل معها وند الازو داقل الحاسوب ولى انها
روميةج وندما تستادل برامج الرسول لضبط ملفاتك ،فانه م المهل بدا او تفهل
الفرق بي الملف النقطي والملف المتجه ،م المهل بدا او تفهل ما ي الصور
النقطية وما ي الرسول المتجه ،شكل 1.24ج
حجمه دوو حدوث تشوه في الصورب ،حيث او الصورب النقطية تتأثر دوة وضوحها
وند تغيير حجمها بحظ الشكل 1.25ج
37
اساسيات الرسم بالحاسوب
ملفا المتجه تكوو لغيرب الحجل الى دربة كبيرب ،و ي ب يتل حسابها لكل
ونصر لورب ،وم الممك تحجيمها الى أي نسبة كما أشرناج الصور المتجهة
تالع ابتدا باستادال برامج الرسولج انت ب يمكنك بحث الصور او قزنها كملف
متجه بدوو استادال برمجيا ج م الممك ،تحويل المتجه الى نقطي بسهولةج غالبية
برمجيا المتجه توفر اقتيارا الصور النقطيةج فاذا فتحت ملف المتجه ملع في
الفوتوشوب فسوف تعرض كصورب نقطية بشكل اليج
الرسول المتجهة فعالة بدا في رسل ابشكال البيانية والرسولج لكنها ب تستادل وادب
لازو الصور الفوتوغرافيةج
الصور في الرسول المتجهة ي اساسا نقاط ترتبط باطوط بأشكال ماتلفةج فملع
لولف الاط ABفسيتل ابشارب الى نقطتاو يربط بينهما قط مستقيل ،لك لولف
ابشكال ابكلر تعقيدا فأننا نحتاج الى نقاط أكلر وطرق أكلر تعقيداج الشكل 1.27
يوضح نفس ابشكال بالصور النقطية والصور المتجهةج
39
اساسيات الرسم بالحاسوب
ماتلفة رسول الحاسوب ي ثعث ابحمر ،ابقضر ،ابزرق تمزج معا بنس
لالع ألواو ماتلفة شكل 1.29ج
40
اساسيات الرسم بالحاسوب
في ا النوع م الصور يتل استادال 4بتا لتمليل ويمة كل قلية ،و ا يساود
ولى تعريف 24ويمة ماتلفة م شدب ابضا ب لكل ونصر لورب ،و ي تملل 16
دربة م اللوو الرمادي م ابسود الى اببيض او 16لوو ماتلفج م الجدير
بال كر فاو الرسول باستادال لغة C++يسمح باستادال 16لوو فقط ،وم الممك
حساب القيمة اللونية ومعرفة اللوو باستادال أربع بتا ،كل بت م البتا اللعث
ابولى يملل ويمة لونية م ابلواو ابساسية بينما البت الرابع يملل ابضا ب
بالتأكيد فاو استادال اللوو يعني اسناد ويمة ) (1للبت ال ي يقابل اللوو المستادل
ولفر إذا لل يتل استادال ذلك اللوو ،اما البت الرابع فاو اسناد ويمة واحد له يعني
او اللوو سيكوو مضي او مشرق وإذا اسند له القيمة لفر فاو اللوو سيكوو
معتل نسبيا وكما يلي
41
اساسيات الرسم بالحاسوب
42
اساسيات الرسم بالحاسوب
يتل اظهار الصور ولى الشاشة التي ي م ابهزب ابقراج والتي تسمح بتوفير
التمليل المرئيج معلوما الصورب ه تأتي م الحاسوب ،ولك بطريقة غير
مباشربج في الواوع فاو المعالج ب يرسل المعلوما بشكل مباشر الى الشاشة ،لك
يعالج المعلوما القادمة م ذاكرب الولول العشوائي ) ،(RAMوم ثل يرسلها
الى كار الشاشة ) (graphic cardال ي بدوره يحول المعلوما الى نبضا
كهربائية ،والتي ترسل بحقا الى الشاشةج
ناك طريقتاو م الممك او نعرض فيها الصورب ولى الشاشة و ما المسح
النقطي والمسح العشوائي )(Random scan and Raster scanج
43
اساسيات الرسم بالحاسوب
تازو معلوما الصورب في مساحة ذاكرب تدوى اإلطار العازل )(frame buffer
و ي مساحة ذاكرب تحمل مجمووة م ويل شدب ابضا ب لكل نقاط الشاشةج ه
المعلوما المازونة يتل استعادتها م ذاكرب اإلطار العازل وترسل او تطبع ولى
الشاشة بواوع لف واحد ) (scan lineفي كل مربج
في نظال المسح النقطي ،حزمة ابلكترونا تمسح الشاشة لف واحد في كل مرب
م ابولى لألسفلج وندما تتحرك حزمة ابلكترونا ولى كل لف فاو حزمة
النقاط في الصف تضا وتطفأ لالع نموذج م النقاط المضيئةج
معلوما الصورب تازو فيما يسمى اإلطار العازل Refresh Buffer or
Frame Bufferج اإلطار العازل يازو في ال اكرب ولى شكل مصفوفة معنونة
بطريقة ابفضلية للصفوف بمعنى قزو الصف ابول ثل الصف اللاني وبعد ا
الصف اللالث و ك ا ج
مساحة ال اكرب ه اإلطار العازل تحتوي ويل شدب ابضا ب لجميع نقاط الشاشةج
ويل ابضا ب المازونة يتل استعادتها م ال اكرب وتطبع او ترسل ولى الشاشة سطر
واحد قط مسح في كل ووت كما واضح في الشكل 1.32ج
كل نقطة شاشة يشار لها ولى انها ونصر لوربج في نهاية كل قط مسح scan
lineفاو حزمة ابلكترونا تعود الى الجان ابيسر م الشاشة لتبدأ بعرض قط
المسح التاليج
44
اساسيات الرسم بالحاسوب
45
اساسيات الرسم بالحاسوب
شاشا الحاسوب وادب ي بأنواع ماتلفة وود تطور في الحقبة ابقيرب بشكل
ه كبير ،سنتطرق في ا الفصل الى ثعث انواع رئيسية إلوطا فكرب وامة و
الشاشا ،و ناك انواع اقرى ب يسع المجال ل كر ا في ا الكتاب وم رغ
بزيادب المعرفة فيمكنه الربوع الى الكت المتاصصة في ا المجالج
46
اساسيات الرسم بالحاسوب
و ي انابي مصنووة م الزباج حيث تحتوي ولى واذفة الكترونا تبعث او
تق ف الكترونا ،والتي يتل توبيهها بواسطة مجال مغناطيسي باتجاه الشاشة التي
تحتوي ولى ونالر فوسفاتية لغيرب مضيئة ،لتكوو نقاط ونصر لورب تبعث
ضو وند الطدال اإللكترونا بهاج
انابي ابشعة الكاثودية ي م ابهزب ابقراج ابولي في نظال الرسول وتسمى
احيانا وارض الفيديو video monitorج العنصر الرئيس في وارض الفيديو و
انبوب ابشعة الكاثودية ،الموضح في الشكل 1.34ج
47
اساسيات الرسم بالحاسوب
3ج وندما تصطدل حزمة ابلكترونا بالشاشة ،فاو الفسفور يبعث ) (emitsنقاط
لغيرب م الضو في كل مووع يتصل مع حزمة ابلكترونا ج
4ج ي ترسل الصورب بتوبيه حزمة ابلكترونا مرب ثانية فوق نفس نقاط الشاشة
بسروةج
) (polarizing glass filterواقر امامه بزاوية مقدار ا 90دربةج ا يعني او
ونصر الصورب يبدو وادب معتلج بي مرشحا ابستقطاب ابثناو ناك بلورا
سائلة قيطية nematic liquid crystalلغيرب وملتوية ي تشير الى حالة م
البلورا السائلة حيث تكوو الجزيئا منظمة بشكل متوازي لكنها ليست بمستوى
واحد ،والتي م الممك او تتحول الكترونيا الى وضع التشغيل او ودل التشغيل
ملتوية او غير ملتوية ج فعندما تتحول الى وضع ودل التشغيل فأنها ستدور الضو
ال ي يمر بها قعل 90دربة ،وتأثير ذلك سيكوو السماح للضو بالمرور قعل
مرشحا ابستقطاب ابثناو وتجعل ونالر الصورب تبدو مضيئةج اما وندما يتل
التحويل الى وضع التشغيل ،فأنها سوف ب تدور الضو ،وال ي سيمنع م وبل
واحدب م المستقطبا وستبدو ونالر الصورب معتمةج كل ونصر لورب يتل
السيطرب وليه بواسطة ترانسيستور مفرد و و مكوو الكتروني لغير وال ي م
الممك يحولها الى وضع تشغيل او ودل تشغيل ودب مرا كل ثانيةج
49
اساسيات الرسم بالحاسوب
شاشة البعزما تبدو مشابهة لشاشة ،LCDلكنها تعمل بطريقة مختلفة تماما :فكل
عنصر صورة هو مصباح فلورسنت مجهري يتوهج مع البالزما .البالزما هي
شكل حار جدا من الغاز وهو غاز متأين حيث تكون الذرات الغازية منزوعة
االلكترونات ،وبالتالي يصبح الغاز مكون من أيونات موجبة الشحنة وإلكترونات
سالبة الشحنة .وبالطبع هذا الغاز يتوهج في ظروف خاصة مثل أن يكون الغاز
داخل مجال كهربي كبير ناتج عن فرق جهد عالي مما يؤدي إلى انجذاب
اإللكترونات إلى الطرف الموجب واأليونا إلى الطرف السال فتصطدل
اإللكترونا مع األيونا مما يؤدي إلى اثارب ذرا الغاز في البعزما ،وينتج و
ه ابثارب تحرر طاوة في لورب فوتونا ضوئية كما و الحال في مصابيح
الفلوريسنت التي نستادمها لإلنارب ،شكل 1.36ج
تعتمد شاشة البعزما ولى طبقة م قعيا البعزما متنا ية الصغر مستقلة يصل
ودد ا الى مئا اببف تحتوي ولى غازا نبيلة باإلضافة الى نسبة م الزئبعج
وندما تتعرض ه الاعيا الى نبض كهربائي فإنها تتو ج ويتكوو بداقلها ما
يعرف بالــــبعزما PLASMAج شاشا البعزما ب ينصح بها للحاسوبج
50
اساسيات الرسم بالحاسوب
51
اساسيات الرسم بالحاسوب
ان ميزة استخدام الضوء الخلفي في شاشات LEDهو لحفظ الطاقة .من الممكن ان
يقال عنها انها تستخدم طاقة اقل من ) (CRT, LCDوهي تعتبر صديقة للمحيط
الى درجة جدا كبيرة.
كذلك فهي توفر نوعية لون جيدة ،وضوح ،ومعدل تنشيط الشاشة أسرع .ان خيار
العتمة المحلية موجودة في عدد من الموديالت والتي تسمح بضبط اللون بشكل
جيد.
52
اساسيات الرسم بالحاسوب
الضو ينعكس الى شبكة العي ،حيث او الاعيا في شبكة العي تحول الضو الى
نبضا وصبية والتي يفسر ا الدماغ كمحفزا بصريةج
الصور الرومية تتكوو م ونالر الصوربج وادب ،ونالر الصورب تنظل بمصفوفة
مستطيلةج حجل الصورب يحدد م قعل ابعاد مصفوفة ونالر الصوربج لإلشارب
الى ونصر لورب محدد ضم المصفوفة فم الممك او تعرفه باستادال
ابحداثيا والتي تملل رول الصف والعمود او بكعل اقر فأنك تملل البعد ضم
محور xوالبعد ضم المحور yو نقطة ابلل ج
افرض أنك ترغ التقاط لورب وتمليلها في الحاسوب ،باستادال الماسح الضوئي،
او الكاميرا ولى سبيل الملالج وحيث إنك ب تملك ذاكرب قزو غير منتهية فيج
وليك تحويل ابشارب التناظرية الى شكل رومي أكلر محدوديةج وملية التحويل ه
تسمى اق العينا samplingج نظرية العينا ي بز مهل في رسول الحاسوب،
ا نعحظ او تعزيز ودول ه النظرية ورا كل م التقاط الصور ومعالجتها ،م
الصورب الرومية ب يمك تشفير ا وشوائيا الى مستويا م التفاليل وب يمك او
يكوو لها وشوائيا مديا ألواو واسعةج بدب و ذلك ،يج او تتنازل و بز م
الدوة ،وذلك باقتيار طرق مناسبة ألق العينا والازو بمعنى تمليل الصورب
المستمرب ولى شكل رومي ج
53
اساسيات الرسم بالحاسوب
احداثيا ونصر الصوربج بطبيعة الحال ،احداثيا ونصر الصورب تبدأ م الصفر
والتي ي نقطة ابللج
او ومليا الرسل ولى الشاشة تتطل معرفة احداثيا الجهاز وكيفية الولول الى
النقاط الماتلفة ولى الشاشةج او غالبية اببهزب تتا نظال احداثيا بحيث تكوو
نقطة ابلل في الزاوية العليا اليسرى كما في الشكل 1.40ج
54
اساسيات الرسم بالحاسوب
اي شي يوضع ولى الشاشة يج او يكوو نسبة الى نقطة ابلل هج نظال
ا م الممك او يحصل ولى مووع كياو باستادال القياسا ابفقية ابحداثيا
والعموديةج القياس ابفقي يعتمد ولى المحور xوال ي يتحرك م نقطة ابلل
باتجاه اليمي ج اما القياس العمودي يستادل ابحداثي yوال ي يتحرك م نقطة
ابلل باتجاه ابسفل ،كما في الشكل 1.41ج
55
اساسيات الرسم بالحاسوب
تحديد احداثيا مووع ونصر لورب ولى الشاشة سيكوو زوج م ابروال
الصحيحة يحدد مووع تقاطع الشبكة بي الصفوف وابومدب ،اي انه يملل رول
الصف والعمود كما و الحال وند العمل ولى المصفوفا ج
ملال ،مسار قط رياضيا لمتعدد قطوط نهايا قطوطه ولى الشاشة ي ((1, 1),
)) (4, 2), (0,4موضحة بالشكل 1.43
56
اساسيات الرسم بالحاسوب
بحظ في الشكل 1.43مكبر الى دربة بدا والية لغرض التوضيح فاو
ابحداثيا تاتلف و تلك التي استادمت في الرياضيا ،نقاط ابقتعف ي
1ج او نقطة ابلل ي في الزاوية اليسرى العليا ،م الممك تحويلها بعمليا
رياضية الى وسط الشاشةج
2ج او احداثي المحور Xيزداد م اليسار الى اليمي كما سبع وأشرنا ،ول لك
فأننا في مصفوفا الرياضيا كاو ا المحور يملل الصفوف بينما في
الرسول و يملل ابومدبج
3ج ونفس الشي ينطبع ولى احداثيا المحور ،Yحيث انها تزداد لألسفل و ه
ابحداثيا كانت تملل ابومدب في مصفوفا الرياضيا بينما في رسول
الحاسوب تملل الصفوفج
الشكل 1.44يوضح فكرب ونونة ونصر لورب واحد م الشكل النقطي )(10×10
مع اضا ب ونصر الصورب ا في مووع الشاشة التي احداثياتها ي )(6, 3ج
57
اساسيات الرسم بالحاسوب
ا الملف يحتوي ولى تعاريف وتوضيح لجميع دوال الرسولج دوال الرسول في
) (C++لها اثناو م الفئا او ابطوار :دوال رسول طور النصو ،ودوال طور
الرسول بشكل والج سنركز في ا الكتاب ولى دوال طور الرسولج ل لك ربما
سنستادل دوال رسول طور النصو دوو او نتطرق الى تفاليلهاج
ه الدالة المكتبية تكت في بداية البرنامج بالصيغة التالية:
>#include<graphics.h
58
اساسيات الرسم بالحاسوب
Initgraph
الى طور الرسول فأننا سنستادل دالة تدوى للتحويل م طور النصو
)(initgraphج ه الدالة تستادل في بداية أي برنامج رسول ضم الدالة الرئيسية
مع دالة اقرى اقتيارية وكما يلي:
ا ابوعو int gd=DETECT, gm; // م الممك ابستغنا و
اما الدالة التالية فهي الزامية في كل برامج رسول الحاسوب
;)“ initgraph (&gd, &gm, “c:/tc/bgi
59
اساسيات الرسم بالحاسوب
مالحظة :في بميع البرامج الواردب في ا الكتاب وليك التحقع م مسار الدليل
ال ي في حاسبتك وتغييره في البرنامج وفقا ل لك ،باعف ذلك ربما ستصدر لك
رسالة قطأج
ه الدالة تعيد تحويل الشاشة م طور الرسول الى طور النصو ج في حالة ودل
استادال ه الدالة فربما ستكوو ناك تأثيرا غير مرغوب بهاج ملال
>#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
اساسيات الرسم بالحاسوب
initgraph(&gd, &gm,"C:\\TC\\BGI");
max_x = getmaxx();
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
اساسيات الرسم بالحاسوب
#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.2ج
في الشكل 2.2لل يتل رسل قطوط مستمرب لك فقط مشا د لنقاط تل اضا تها،
وبسب لفا العي البشرية فأننا نرى الاطوط مستمرب وندما تكوو النقاط التي
68
اساسيات الرسم بالحاسوب
يتل اضا تها وريبة بدا م بعضج في الحقيقة كلما كانت النقاط أورب لبعض نرى
لورب أفضلج
في الشكل 2.3فاو الصورتاو تملعو حرف Aلك الصورب التي ولى اليمي تبدو
أكلر وربا وشبها للحرف Aم الصورب التي ولى اليسار والسب في ذلك بو
النقاط في الصورب التي ولى اليمي أكلر تقارب م تلك التي ولى اليسارج
او ودد النقاط في وحدب المساحة للشاشة تشير الى مصطلح يسمى دوة الوضوح
للشاشة )(resolutionج فكلما زاد ودد النقاط في وحدب المساحة للشاشة زاد
دوة الوضوح وبالتالي سنحصل ولى لورب أكلر وضوحا ونووية أفضل كنتيجة
فاو الشاشا التي لها دوة وضوح والية تكوو أكلر كلفة ج
انظر الى بعض اساسيا قوارزميا رسل الاط ،سترى ما ي الشروط التي يج
او تتحقعج طالما نفس الصورب م الممك او ترسل باستادال ودد م
الاوارزميا ،فاو بعضها يكوو أكلر مقبولية م غير ا ،ألنها توفر لفا تمكننا
م رسل لور بنوويا أفضلج بعض ه المقاييس ندربها نا:
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ج
70
اساسيات الرسم بالحاسوب
2ج الاط يج او ينتهي بشكل لحيح :السب بيزال كما في النقطة السابقةج
بسب ودل الصحة والتقري ،فاو الاطوط ب تنتهي بشكل لحيحج اما
تقف أوصر م النقطة التي يج او تنتهي بها او تتمدد الى ما ورا نتيجة
النقطة؟ التقاطع وابتصال ب يتكوو بشكل لحيحج انظر الى الشكل 2.6ج
3ج المحافظة ولى شدب اضا ب ثابتة :الصورب ترسل بتغير ابضا بج اي او
النقاط ولى طول الاط تكوو مضا بج طالما او شدب ابضا ب له ه النقاط
تكوو متجانسة ،فسيكوو لدينا لورب مريحة للنظرج ه م الممك او
نعملها إذا كانت النقاط المراد اضا تها لها تباود متساوي بي واحدب
واقرىج ولى كل حال ،بسب ودل دوة الاوارزمية ،فأننا احيانا سننتهي
بنقاط اما تكوو متقاربة بدا او متباودب أكلر وليع بي واحدب واقرىج م
الواضح او نقطتي متقاربتي واحدب لألقرى وند اضا تها تجعل النقاط
تبدو براوةج النتيجة سنحصل ولى قط أكلر اشراوا في ابزا منه وليس
مشروا في ابزا اقرىج النتيجة سيكوو قط يبدو متعربا وغير متجانسج
71
اساسيات الرسم بالحاسوب
4ج يج او يرسل الاط بسروة :ه حالة قالة في الرسل التفاولي ،والتي يتل
رسل الاطوط فيها مباشرب يتل الرسل وابظهار بنفس الووت real timeج
طالما ليس ناك مشاكل وديدب مع الاطوط المستقيمة ،فاو ابشكال المعقدب
ربما تحتاج الى حسابا اطول وبل تحديد الرسل التاليج وليه فاو الصورب
ترسل بأبزا ووطع ،والتي تبدو غير سارب او حتى مزوجة بووت ماج
6ج يج او تكوو له كلافة ثابتة :اي او الاط المرسول يج او تكوو ودد ونالر
الصورب او النقاط التي تملل كل نقطة ب تتجاوز ونصر لورب واحدج
72
اساسيات الرسم بالحاسوب
رسل الاط ينجز بحساب المواوع الوسطية ولى طول مسار الاط بي مواوع نهايا
الاطج بهاز ابقراج يوبه ألمع او اضا ب ه المواوع بي نقاط النهايةج
73
اساسيات الرسم بالحاسوب
نا قوارزمية اظهار الاط المستقيل تعتمد بشكل اساس ولى معادلة الاط المستقيل،
والحسابا التي تجرى ولى ونالرهج
ومنها يمك ايجاد مدى تغير ابحداثي ألي نقطة فاو ناك مدى لتغير ا ي
ابقر
يمك ايجاد بالمقابل م معرفة
طريقة استادال معادلة الاط المستقيل تعتبر م أسهل الطرق المستادمة ،ي
ببساطة تستادل معادلة الاط المستقيل لتحديد النقاط الوسطية بي نقطة البداية
والنهاية ،ه الطريقة تعتمد بشكل مباشر ولى تحليل معادلة الاط المستقيل ،و ي
تتضم ومليا ضرب وبمع اروال حقيقية ،وبالتالي فهي تتطل تدوير ابروال
الناتجة لغرض رسل ونصر الصورب في المووع المحددج
السؤال المهل نا و لو كانت لدينا نقطة ولى الاط النقطة الحالية ،فكيف م
الممك او نحصل ولى ويمة النقطة العحقةج طبعا ا يتل وذلك ولى اوتبار أحد
المحاور و القائد او الدليل وتتل زيادب ويمته بمقدار واحد في كل مرب ،وم قعل
معادلة الاط المستقيل نستنتج ويمة ابحداثي ابقر التي تقابل ه القيمةج وليه فأننا
نحتاج او نحس النقطة المطلوب رسمها اوتمادا ولى النقطة السابقةج بشكل وال
فاو وملية حساب النقطة العحقة وملية ليست سهلة ول لك ناك ودد م
الاوارزميا تعالج ه المشكلة ،فضع و مشاكل اقرى ليست به ه الدربة م
اب مية ،بحظ الشكل 2.9ج
74
اساسيات الرسم بالحاسوب
شكل :2.9اشكال ماتلفة تملل لعوبة اقتيار النقطة العحقة وند رسل قطج
بابوتماد ولى ويمة الميل نحدد اي م ابحداثيا سيكوو و القائد لكي تتل زيادته
بمقدار واحد في كل مرب ،في حي ابحداثي ابقر يتل استارابه م معادلة الاطج
إذا كاو الميل ألغر م واحد فاو ابحداثي او المحور القائد سيكوو و المحور
) ،(xاما إذا كاو الميل أكبر م واحد فاو المحور القائد و المحور ) ،(yبحظ
الشكل 2.10ج
75
اساسيات الرسم بالحاسوب
مالحظة :إذا كاو الميل يساوي واحد فاو اي محور م المحاور م الممك اقتياره
ليكوو و القائدج
فه ا يعني او الاط ومودي ويكوو المحور yو القائد اما اذا كاو
والمحور xويمته ثابته ب تتغير ي ذا القيمة اببتدائية له ج
فاو الاط سيكوو افقي وبالتالي فاو المحور القائد و x اذا كاو
والمحور yويمته ثابته ب تتغير ،بحظ كيفية تمليل الميل في الشكل 2.11ج
76
اساسيات الرسم بالحاسوب
بعد او تل ايجاد الميل با ابو دور القيمة اللابتة cلكي نجد ويمتها و ه ببساطة
يتل ايجاد ا م تعويض ويل الميل واحداثيا نقاط البداية او النهاية في معادلة الاط
المستقيل ،لتبقى فقط ويمة cغير معروفة ويتل ايجاد ا بحل المعادلة ،ويمة cتساوي
c = y1 – m . x1
ابو معادلة الاط المستقيل تحتوي فقط ولى متغيري ما ) (x, yفاذا ووضنا و
ويمة ) (x or yنستطيع ايجاد القيمة ابقرى التي تقابلهاج
لنحاول او نستوضح ه الطريقة م قعل تطبيقها ولى ملالج نفرض او المطلوب
رسل قط مستقيل بي النقطتي ) P1(5, 10) , P2(11, 14ج
الحل:
اوب ايجاد الميل
77
اساسيات الرسم بالحاسوب
تقرب الى أورب ودد لحيح وند العمل اليدوي ،او تركها كما ي في حالة كتابة
برنامج
ثاللا يتل زيادب ويمة xبمقدار واحد في كل مرب ،وايجاد ويمة yالتي تقابلها
م معادلة الاط المستقيل ،سينتج لنا الجدول 2.1ج
78
اساسيات الرسم بالحاسوب
2.5.2انواع الخطوط
لغرض او يكوو فهل رسل الاطوط سهع فسنقسل الاطوط الى ثعث انواع
1ج الاطوط ابفقية
2ج الاطوط العمودية
3ج الاطوط المائلة
ل م ابسط انواع الاطوط ورسمهل ب يحتاج الى مهارب النووي ابولي
وقوارزميا معقدب ،بينما تكم المشكلة الرئيسية في رسل الاطوط المائلة والتي
غالبا يركز ا الفصل وليهاج
79
اساسيات الرسم بالحاسوب
.1الخطوط االفقية
الاط ابفقي يعني او ويمة ابحداثي yثابت بينما ابحداثي xو ال ي يتغير فقطج
ل لك فاو رسل الاط ابفقي ب يحتاج الى أكلر م زيادب ويمة ابحداثي xبمقدار
واحد في كل مرب بينما ابحداثي ابقر سوف ب تتغير ويمتهج
مالحظة :م المهل معحظة إذا كانت ويمة x0اكبر م ويمة x1فسيكوو رسل الاط
بتقليل ويمة xبمقدار واحد وليس زيادتها ،ويج معالجة ه الحالة وند كتابة الدالة
البرمجية م الممك اوتبار النقطة ذا القيمة ابول ي نقطة البداية للسهولة ج
نفس الحديث و الاط ابفقي ينطبع ولى الاط العمودي ما قع او التغيير سيكوو
في ويمة yبمقدار واحد زيادب او نقصاو ،بينما تبقى ويمة xثابتةج
80
اساسيات الرسم بالحاسوب
مالحظة :الاط ابفقي والاط العمودي يظهر اضا ب أفضل م الاط المائل بزاوية
45دربةج
81
اساسيات الرسم بالحاسوب
.3الخطوط المائلة
تاتلف الاطوط المائلة و الاطوط ابفقية والعمودية وند الرسل وذلك
لحدوث الكلير م المشاكل التي ربما تؤدي الى رسل قطوط ب تنطبع
وليها موالفا الاطوط الملاليةج
ووند الحديث و الاطوط المائلة فهناك نووي م الاطوط المائلة
m=1 الاطوط المائلة التي يكوو ميلها يساوي واحد
الاطوط المائلة التي يكوو ميل الاط فيها أكبر او ألغر م واحد m ≠ 1
)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
اساسيات الرسم بالحاسوب
لنناوشها بطريقة اقرى ،اذا كانت لديك نقطة ولى الاط المستقيل فبإمكانك او تعرف
الى المحور xواضافة النقطة القادمة ولى ذا الاط المستقيل وذلك بإضافة
yالى المحور ، yا يعني اذا كانت لديك النقطة ) ،p(x, yفاو بإمكانك او
تحصل ولى النقطة القادمة ولى انها ) ،Q(x+ x, y + yالنقطة التي بعد ا R
ستكوو ) R(x + 2* x, y + 2* yو ك اج ل ا ،في الحقيقة ه طريقة زيادب
) (incremental methodوذلك م معرفة نقطة البداية فسيكوو م الممك
معرفة باوي النقاط ،واحدب بعد ابقرى كل واحدب تبعد و سابقتها بمقدار ثابت،
لحي او نصل نقطة النهايةج
( تعطينا قطوط مستقيمة بأنواوها الماتلفةج القيل الماتلفة لكل م
بسب ودل الدوة نتيجة ومليا التقري للكسور ،فم النادر او نحصل ولى قط
مستقيل سوي ،لك بالنهاية سنحصل ولى قطوط ب تعتبر ملاليةج
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
اساسيات الرسم بالحاسوب
87
اساسيات الرسم بالحاسوب
ا التأثير احيانا يدوى تأثير حالة بحظ او الاط يبدو مشابه لمتوالية م السعللج
السلل )(Stair case effectج
في ه الاوارزمية نحتاج الى حساب الميل مرب واحدب فقطج
النقطة العائمة قوارزمية DDAتتصف بانها بطيئة ألنها تتطل ومليا
الكسور ج
88
اساسيات الرسم بالحاسوب
89
اساسيات الرسم بالحاسوب
90
اساسيات الرسم بالحاسوب
)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
اساسيات الرسم بالحاسوب
}
}
لنعيد شرح ه الفكرب بشكل مفصل وأكلر دوة ونرى كيف او برزنهال طور ا
لتكوو قوارزمية لها ميزا و غير ا م الاوارزميا ابقرى ،و أكد ولى
اوتماد فكرب حساب الاطأ لك بطريقة أفضل حيث تالص م الكسور وومليا
ضرب الععمة العائمة لينتج وعوا تعتمد فقط ولى ومليا الجمع والطرح وكما
يليج
95
اساسيات الرسم بالحاسوب
بعد ضرب بميع ونالر الععوة ) (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
اساسيات الرسم بالحاسوب
او حساب 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ج
97
اساسيات الرسم بالحاسوب
98
اساسيات الرسم بالحاسوب
الفص الثالث
رسل الدائرب CIRCLE DRAWING
المقدمة 3.1
نظرا الى او الدائرب م المكونا التي تستادل بكلرب في الصور والماططا ،ل ا
فاو دوال رسل دائرب كاملة او ووس دائرب غالبا تضم في حقائ الرسولج بكعل
اكلر ومومية ،في برامج الرسول توبد دالة مفردب م الممك او تستادل لعرض
الدوائر وابشكال البيضويةج رسل الدائرب يعتبر وليع اكلر تعقيدا م رسل الاطج
الدائرب ي مجمووة م النقاط التي تحيط بشكل كامل بنقطة محددب تعتبر المركز
) (xc, ycوبميع ه النقاط تبعد مسافة متساوية مقدار ا ) (rو المركز نصف
القطر ج
مالحظة :دائما تحدد الدائرب بواسطة نقطة المركز ) (xc, ycونصف القطر كما في
الشكل ،3.1وب يمك رسل دائرب بغياب احد ي المعاملي م الممك اذا لل
تتوفر نقطة المركز او نعتبر المركز و نقطة ابلل ج
99
اساسيات الرسم بالحاسوب
ناك ودب طرق لرسل الدائرب و ي تاتلف م حيث كفا تها وسروة تنفي اج
حيث او ) (rيملل نصف وطر الدائربج م الممك كتابة قوارزمية رسل دائرب
بسيطة وذلك اذا ما ومنا بحل معادلة الدائرب إليجاد ويمة ) (yوندما نستادل مدى
تغير لإلحداثي ) (xبمقدار وحدب واحدب في كل مربج
بكعل اقر ،م الممك استادال معادلة الدائرب ه لحساب مووع النقاط ولى محيط
الدائرب وذلك وند التعويض و ويل ) (xبزيادب وحدب واحدب في كل مرب ضم
المدى )) (0, rالى ) ((0, - rوحساب ويل yالتي تقابلها في كل مووع ،ولما او
ويمة نصف القطر ) (rثابتةج
=y
لو فرضنا او المطلوب رسل دائرب نصف وطر ا ) (20مركز الدائرب في نقطة
ابلل ،باستادال معادلة الدائرب وكما يلي
100
اساسيات الرسم بالحاسوب
ه الطريقة ليست مناسبة وذلك بو الدائرب التي تل رسمها تحتوي ولى فراغا
كبيرب ،الحسابا ليست كفو ب بدا وملية التربيع ،والج ر و ا يحتاج الى
التقري ،فضع و انها تسب زيادب في الووت المطلوب لرسل الدائرب بسب
زيادب الووت المطلوب لحساب ومليا الضرب والج رج ل لك نحتاج الى قوارزمية
دائرب اكلر كفا ب واكلر دوة إليجاد النتائجج
101
اساسيات الرسم بالحاسوب
مالحظة :في الملال السابع فاو مركز الدائرب و في نقطة ابلل ،اما اذا تغير
مركز الدائرب بحظ الشكل 3.3فأننا بحابة الى اوادب كتابة المعادلة بحيث
تتضم المركزج ستكوو المعادلة كما يلي
=y
تعتبر المعادلة السابقة وامة لرسل الدائرب اينما كاو مركز الدائرب سوا كاو في
نقطة ابلل او في مكاو اقرج
شكل :3.3دائرب رسمت باستادال معادلة الدائرب ومركز ا ليس في نقطة ابللج
102
اساسيات الرسم بالحاسوب
في الشكل 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وم الممك او تكوو الزاوية اكبر او الغر
في كل قطوب ،يفضل او تكوو الغر م دربة واحدبج
الدالة البرمجية لرسل دائرب باستادال ابوطاب ي
104
اساسيات الرسم بالحاسوب
او اقتيار اي نقطة ولى محيط الدائرب ملع ) (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
ا فاو ويل احداثيا النقطة ) (x1, y1التي في الشكل 3.8م الممك حسابها م
كما يلي
….1جج……… cos (ө) = x1 / r
)x1 = r . cos (ө
sin (ө) = y1 / r …………..2
)y1 = r . sin (ө
مما تقدل فاو النقطة العحقة للنقطة ابولى ) (x2, y2سيتل حسابها كما يلي
107
اساسيات الرسم بالحاسوب
)sin (ө + dө) = sin (ө) . cos (dө) + cos (ө) . sin (dө
)cos (ө + dө) = cos (ө) . cos (dө) – sin (ө) . sin (dө
),(1, 2 )) (cos (ө), sin (өبما يساويها م الععوا نعوض و ويل كل م
نحصل ولى
))x2 = r . ((x1/r) * cos(dө) – (y1/r) * sin(dө
109
اساسيات الرسم بالحاسوب
; xtemp = x
; x = x * cd – y * sd
; y = y * cd + xtemp * sd
}
; )(getch
}
=y
ه الطريقة ليست ملالية وفيها مشاكل تؤدي الى رسل دائرب ليست وود بينا او
ملاليةج
نا سنشرح قوارزمية اقرى تسمى قوارزمية النقطة الوسطى التي تعتمد ولى
معادلة الدائرب لكنها تقدل طريقة ماتلفة ،حيث او مووع ونصر الصورب ولى طول
محيط الدائرب يحس بابستناد ولى حسابا الزيادب لمعامل القرارج
f(x, y) = 0فاو المعادلة 8تملل معادلة الدائربج وليه ،اذا كانت ويمة
110
اساسيات الرسم بالحاسوب
لنفرض او الدائرب المطلوب رسمها تتمركز في نقطة ابلل ،ل لك فاو معادلة
الدائرب ستتحقع لجميع النقاط التي ولى محيط الدائرب مربع الوتر يساوي مجموع
مربعي الضلعي ابقري في المللث القائل الزاوية ج
r2 = x2 + y2
وبالتالي سنحصل ولى المعادلة 8Aي ذا المعادلة 8لك المركز في نقطة
ابلل
1ج او تكوو النقطة المراد حسابها ي فعع ولى محيط الدائرب ملل النقطة Cفي
الشكل 3.9
f(x, y) = 0
ل لك فاو النقطة Cالتي ي احداثياتها ) (x, yستكوو دالتها ) f(x, yتساوي
لفر لتساوي مربع نصف القطر ) (rمع مجموع مربع ابحداثيي )(x, yج
111
اساسيات الرسم بالحاسوب
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التي تقابلها باستادال معادلة الدائربج
ابو وند زيادب ويمة 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
ا يعني او النقطتاو ) (A, Bداقل الدائرب كما سبع وبينا ،وبالتالي فاو
النقطة Aي ابورب الى محيط الدائرب الحقيقي وسيتل اقتيار ا لتكوو احدى
نقاط الدائرب بنها ابورب الى محيط الدائرب الحقيقي كما في الشكل 3.11ج
114
اساسيات الرسم بالحاسوب
ج مجموع ) (dA, dBسيكوو سال ايضا بمع ويمتي سالبتي يكوو ناتجهل سال
نستنتج م ذلك ،اذا كانت ويمة ) (Sسالبة يتل اقتيار النقطة Aج
115
اساسيات الرسم بالحاسوب
ج مجموع ) (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بنها ابورب الى
محيط الدائربج
Bج اما إذا كانت dBاكبر م او تساوي dAفه ا يعني او مجموع القيمتي )(S
سيكوو ويمة سالبة بو القيمة ابكبر dBسالبةج سيتل اقتيار النقطة Aبنها
ابورب الى محيط الدائربج
مما سبع ستكوو لدينا واودب مهمة تعتبر محور قوارزمية نقطة الوسط ،و ي
إذا كانت ويل مجموع البعدي ) (Sاكبر م لفر ،فيتل اقتيار النقطة Bوباعف
ذلك يتل اقتيار النقطة Aج
117
اساسيات الرسم بالحاسوب
while (x <= y) {
s = dA + dB ;
if ( s > 0 )
y=y–1;
x=x+1;
}
getch() ;
}
م الشكل نقطة ولى المنحنيج الشكل البيضوي تعميل للدائرب والتي ي نوع قا
البيضوي لها بؤرتاو في نفس المووعج
ابشكال البيضوية لها اثناو م المحاور المتعامدب ) (a, bبحيث يكوو الشكل
ا التناظر فاو البيضوي متناظر حول ه المحاور ،انظر الشكل 3.13ج وبسب
ه ه المحاور تتقاطع في مركز الشكل البيضوي )(Cج المحور األكبر م
المحاور ابثناو وال ي يقابل المسافة األكبر بي النقاط ولى الجانبي في الشكل
البيضوي يدوى المحور األكبر ) (major axisفي الشكل 3.13و متملل بقطعة
ه المحاور الاط بي النقاط ) (-a, aج المحور ابلغر ) (minor axisبي
والمسافة ابلغر بي النقطتي ولى بانبي الشكل البيضوي يسمى المحور ابلغر
في الشكل 3.13متملل بقطعة الاط بي النقاط )(-b, b
119
اساسيات الرسم بالحاسوب
120
اساسيات الرسم بالحاسوب
معادلة الشكل البيضوي م الممك تبسيطها بشكل كبير اذا كاو الشكل البيضوي
وياسي حيث يكوو كل م المحور الرئيس واللانوي متطابقة او موازية لمحاور
ابحداثيا السينية ج الشكل 3.15يوضح شكل بيضوي بمووع وياسي حيث او
المحور الرئيس يوازي ابحداثي ) (xبينما المحور اللانوي يوازي ابحداثي )،(y
بينما الشكل 3.14يوضح شكل بيضوي بمووع ليس وياسيج
المعامل ) (rxله ا الملال يملل نصف المحور الرئيس نصف القطر ابكبر ،
والمعامل ) (ryيملل نصف المحور اللانوي نصف القطر ابلغر للشكل
البيضويج معادلة الشكل البيضوي موضحة بالععوة التالية والتي م الممك كتابتها
بدبلة مركز الشكل البيضوي والمعامع ) (rx, ryي
…………………A
121
اساسيات الرسم بالحاسوب
x = xc + rx . cos
y = yc + ry . sin
الشكل البيضوي فقط في المووع القياسي ،في الفصل القادل سندرس كيفية النقل
وتدوير ابشكال بشكل والج
كما وضحنا سابقا او ناك تناظر للدائرب ،وك لك للشكل البيضوي الشكل ،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م الممك التنبؤ بإحداثيا النقطة العحقة )(x, yج ونصر
الصورب المناسبة م الممك او يتل اقتياره وفقا إلشارب دالة الشكل البيضوي،
حيث سيتل وضع نقطة بي النقطتي المرشحتي وفحص اي م النقطتي
المرشحتي ستكوو أورب الى الاط الحقيقي لمنحني الشكل البيضويج وادب النقطة
ستوضع بمقدار قطأ مقداره نصف ونصر الصوربج
موالفا او احتماليا اشارب دالة الشكل البيضوي ي
124
اساسيات الرسم بالحاسوب
وند البدأ بالنقطة ) (0, ryفأننا سناطو ولى المحور xلحي الولول الى الحد
الفالل بي المنطقة 1والمنطقة ، 2بعد ا يتل التحول للسير باطوا ثابتة
مقدار ا وحدب واحدب ولى المحور ) (yولى المتبقي م الشكل البيضوي في الربع
ابول كما سبع ونو ناج في كل قطوب فأننا نحتاج الى اقتبار الميل للمنحني وذلك
لتحديد المنطقة الفاللة بي المنطقة ) (1والمنطقة )(2ج ميل المنحني )(dy/dx
يحس كما يلي
ابو لنحس النقاط ولى الشكل البيضوي ضم المنطقة ) ،(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ج
دالة التنبؤ م الممك او تعرف كما يلي و ي ذاتها دالة الشكل البيضوي :
126
اساسيات الرسم بالحاسوب
في المووع العحع ) (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
ابو لنحس النقاط ولى الشكل البيضوي ضم المنطقة ) ,(2في المنطقة ) (2فاو
ميل المنحني يكوو )(dy/dx < -1ج
127
اساسيات الرسم بالحاسوب
128
اساسيات الرسم بالحاسوب
ابورب الى حدود الشكل البيضويج باعف ذلك فاو ويمة ) (xالتي سيتل اقتيار ا
ستكوو )(xkج
( والتي تل توضيحها وند حساب المنطقة )(1 معامل القرار يتغير بالقيمة )
1ج ادقال انصاف اوطار الشكل البيضوي ) ،(rx, ryوك لك مركز الشكل البيضوي
)(xc, ycج
2ج تحديد النقطة ابولى او النقطة اببتدائية ولى الشكل البيضوي مع معحظة او
الشكل البيضوي يتمركز في نقطة ابلل ج
)(x0, y0) = (0, ry
4ج لكل ويمة ) (xkفي المنطقة 1بداية تكوو k=0اومل ابقتبار التالي:
129
اساسيات الرسم بالحاسوب
Aج اذا كانت ) (P1k < 0فاو القيمة العحقة ولى مسار الشكل البيضوي ي
) (xk+1, ykيربى او تت كر باو مركز الشكل البيضوي و نقطة ابلل ج
وسيتل حساب معامل القرار العحع وفقا للععوة التالية:
Bج باعف ذلك اي وندما تكوو ) (Pk ≥ 0فاو النقطة العحقة ولى مسار الشكل
البيضوي ي ) (xk +1, yk -1وسيتل حساب معامل القرار العحع وفقا للععوة
التالية:
ه المنطقة 5ج احس معامل القرار للمنطقة ، 2ولى اوتبار او نقطة البداية في
) (x0, y0ي تساوي اقر نقطة تل حسابها في المنطقة ، 1وكما يلي
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وسيتل حساب معامل القرار العحع وفقا للععوة
التالية:
7ج حساب النقاط التي سيتل اضا تها في ابرباع اللعث ابقرى بطريقة التناظرج
8ج اذا كاو المطلوب او يكوو مركز الشكل البيضوي في مكاو اقر ولى الشاشة
) (xc, ycفيتل تحريك كل نقطة تل حسابها ) (x, yالى المووع المطلوبج
x = x + xc
y = y + yc
ملال :اذا كانت ) ،(rx = 8, ry =6سوف نعمل ولى تتبع الاطوا التي ترسل
الشكل البيضوي باستادال قوارزمية النقطة الوسط ولى طول مسار الشكل
البيضوي في الربع ابولج
القيل اببتدائية وويمة الزيادب لمعامل القرار تحس كما يلي
131
اساسيات الرسم بالحاسوب
بالنسبة للمنطقة : 1القيمة اببتدائية ألول نقطة للشكل البيضوي ال ي مركزه في
نقطة ابلل ي
) ) ,((x0, y0) = (0, 6وويمة معامل القرار اببتدائية ي
معامع القرار المتعاوبة ولى طول مسار الشكل البيضوي تحس باستادال النقطة
الوسط وكما في الجدول
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
باوي النقاط موضحة بالجدول
رسل النقاط الناتجة للربع ابول م الشكل البيضوي ي في الشكل مع معحظة او
ابرباع اللعث ابقرى تستارج بالتناظر
133
اساسيات الرسم بالحاسوب
/ * Region 1 *I
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
اساسيات الرسم بالحاسوب
136
اساسيات الرسم بالحاسوب
الفص الرابع
المقدمة 4.1
في الفصول السابقة تطرونا الى مبادئ انتاج الصورب رسل الصورب ج تكلمنا فقط
و توليد الاطوط والدوائر ،دوو او نتحدث و دوال مشابهة م الممك او تكوو
مناسبة لألشكال ابقرى ابكلر تعقيدا والتي ي قارج مدى ا الكتابج
في العديد م الحاب ،م الممك دائما او تعامل الصور المعقدب ولى انها تجميع
للاطوط المستقيمة ،الدوائر ،وابشكال البيضوية جج الخج واذا كنا وادري ولى توليد
ه ابشكال ابساسية فأننا بالتأكيد وادري ولى توليد لورب تشترك بها ه
ابشكالج اذا ما ومنا برسل الصور ،فاو الحابة ستبرز لتحويل ه الصوربج اننا
واوعا ب نغير الصورب بو ريا ،لك الصورب التي في مركز الشاشة ملع ربما
تحتاج الى ازاحتها يمينا او يسارا ،اولى او اسفل ،تكبير او تصغير ،تدوير باتجاه
وزاوية معينة و ك اج
في كل ه الحاب ،م الممك او نعرض الصورب الجديدب كصورب حقيقية بديدب
ونستادل قوارزميا الرسل لرسمها ،لك الطريقة ابفضل او نتعامل مع شكلها
الحالي ،ونحاول او نقول بعمليا حسابية ولى البيانا الجديدب لجعلها بالشكل
المطلوبج ا المبدأ يسمى التحويلج
137
اساسيات الرسم بالحاسوب
4.2.1النقل Translation
و ي وملية نقل الشكل م مووعه الحالي في الشاشة الى اي مووع اقر في الشاشة،
ا م الممك انجازه بإضافة ويمة ثابتة الى احد المحاور او كع المحوري ج
لغرض نقل نقطة ،فاو ويل ثابتة تضاف الى المحور xوالمحور yللنقطة التي في
الشكل 4.1ج
ابحداثيا الجديدب بعد وملية نقل النقطة ي
x’ = x +tx
y’ = y + ty
او ويل معامل النقل ) (tx, tyتملل مقدار ابزاحة التي يتل بها نقل النقطة باتجاه x
او yولى التواليج وملية نقل الكياو م الممك او يتل باتجاه محور واحد افقي او
ومودي او م الممك او يكوو باتجاه مائلج او معامل النقل م الممك او يأق
اي ويمة مع مراواب حجل الشاشة وم الممك او يكوو النقل لألولى او ابسفل
وم الممك او يكوو يمينا او يساراج
138
اساسيات الرسم بالحاسوب
النقل مع معحظة نقطة ابلل مالحظة :تعتمد حركة الكياو ولى ويل معامع
ولى الشاشة ،حيث ستكوو الحركة كما يلي:
اذا كانت ) (tx > 0فاو الحركة ستكوو الى اليمي ج
اذا كانت ) (tx < 0فاو الحركة ستكوو الى اليسارج
اذا كانت ) (ty > 0فاو الحركة ستكوو لألسفل اذا كانت نقطة ابلل للشاشة في
الزاوية اليسرى العليا ج
اذا كانت ) (ty < 0فاو الحركة ستكوو لألولىج
م الممك تحريك الكياو تنفي ا لمعامل النقل ابول ثل نحركة تنفي ا لمعامل النقل
اللاني اذا كاو المعامعو ب يساوياو لفر لينتج بالنهاية حركة مائلةج
فملع اذا كاو المتطل العال و تحريك الكياو الى مووع بديد ،الكياو ابللي رسل
باستادال قطوط منقطة ،والكياو المنقول رسل باستادال قط غير منقط فاو الشكل
سيتغير مووعه ولى الشاشة كما في الشكل 4.2ج
139
اساسيات الرسم بالحاسوب
شكل :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
اساسيات الرسم بالحاسوب
142
اساسيات الرسم بالحاسوب
143
اساسيات الرسم بالحاسوب
مالحظة :وملية التحجيل تنجز ولى بميع نقاط الكياو وليس لنقطة او ودد مجتزأ
م نقاط الكياوج
مالحظة :م المهل بدا ألبرا وملية التحجيل نقل الكياو الى نقطة ابلل ثل ابرا
وملية التحجيل وبعد ا اوادته الى مووعه ابللي ودل نقل الشكل الى نقطة ابلل
يؤدي الى تحجيل الشكل مع نقله الى مكاو اقر في الشاشة ،كما في الشكل 4.8ج
لكي تكوو الفكرب اكلر وضوحا فاو الكياو وادب يتكوو م اكلر م نقطة واحدب،
وليه فاو احدى النقاط سيتل اوتبار ا نقطة ثابتة اي ستبقى بنفس احداثياتها بعد
ه النقطة ي التي سيتل اوتبار ا معامع النقل ويتل وملية التحجيل ،احداثيا
النقل الى نقطة ابلل بطرح ه المعامع م بميع احداثيا النقاط ابقرى
للشكل ،بعد او يصبح الجسل في نقطة ابلل او نقطة م الشكل في نقطة
ابلل ،ول بأبرا وملية التحجيل ،متى ما انجز وملية التحجيل وليك اوادب
الجسل الى مكانه ابللي وذلك بإضافة ذا معامل النقل ال ي طرح سابقا الى
بميع نقاط الكياوج
شكل :4.8تحجيل مللث بمقدار الضعف م دوو سحبه الى نقطة ابللج
144
اساسيات الرسم بالحاسوب
معامع ثانيا :بعد اكمال تموضع الكياو في نقطة ابلل يتل التكبير وحس
التكبير التكبير ينجز ولى ابحداثيا الجديدب ج الشكل )4.9 (3
ثالثا :يعاد تحريك المللث الى مووعه ابللي تتل وملية النقل المعاكس بنفس ويل
النقل ابولى مع اقتعف ابشارب ج الشكل )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.2.3التدوير Rotation
نوع اقر معروف م ومليا التحويل و التدويرج والتدوير يستادل إلوادب ترتي
كياو معي ج الشكل 4.10يوضح كياو تل تدويره بزاوية مقدار ا حول نقطة
ابللج
معحظة :التدوير و تدوير حول نقطة ابلل ،و ناك تدوير حول نقطة معينه
سنتطرق له بحقاج
146
اساسيات الرسم بالحاسوب
او تدوير نقطة واحدب في كياو موضحة بالشكل 4.11ج الاط المنقط ال ي يصل
النقطة ) (x, yمع نقطة ابلل يعمل زاوية ) (βمع المحور xوله طول مقداره ،r
ل لك فاو
x = r cos β
y = r sin β
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 β
مالحظة :في وملية التدوير يج او يكوو الكياو في نقطة ابلل كما سبع وبينا
في وملية التحجيلج ل لك يج او يتل نقل الكياو الى نقطة ابلل ،التدوير ،ثل النقل
الى مكانه ابلليج
م الممك تمليل الععوا العامة للتدوير ولى شكل مصفوفة وكما يلي:
148
اساسيات الرسم بالحاسوب
او زاوية التدوير م الممك او تكوو موببة او سالبة ,بمعنى م الممك او يكوو
تدوير باتجاه دوراو وقارب الساوة او التدوير باتجاه معاكس لدوراو وقارب
الساوةج
بالنسبة للدوراو بزاوية موببه فاو التدوير سيكوو باتجاه معاكس بتجاه دوراو
وقارب الساوة كما في الشكل ،4.12في ه الحالة فاو المصفوفة الناتجة ي
اما اذا كانت زاوية الدوراو سالبة فاو اتجاه الدوراو سيكوو باتجاه دوراو وقارب
الساوة كما في الشكل ،4.13ويتل تمليلها بالمصفوفة التالية:
149
اساسيات الرسم بالحاسوب
حيث او
= ) sin(-α ) = - sin α , cos(-α
وليه ،فاو اي نقطة م الممك ضربها به ه المصفوفة لنحصل ولى احداثيا
بديدب تملل المووع الجديد للنقطة بعد التدوير مع معحظة او ا التدوير يحدث
وندما يكوو الكياو في نقطة ابلل ج م الممك او نكت الععوة لكل نقطة كما
يلي:
التدوير حول نقطة معينه :ناك نوواو م النقاط التي م الممك التدوير
حولهل ،النوع ابول او تكوو النقطة داقل الكياو والنوع اللاني تكوو النقطة قارج
الكياوج في كلتا الحالتي فاو العملية بسيطة بدا وتتمحور ولى تحريك النقطة
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يوضح ودد م ابنواع الماتلفة لتحويع السح التي طبقت ولى
كياو مستطيل الشكل الشكل المنقط ج الشكل ابول يوضح السح باتجاه المحور 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 الععوة اوعه م الممك تمليلها بمصفوفة ،حيث او السح
يكوو كما يلي:
ه م الممك او نطبقها ولى بميع النقط في الكياو ال ي يراد سحبه كما يلي:
154
اساسيات الرسم بالحاسوب
السح باتجاه المحور xيحافظ ولى احداثيا ،yوالتغيير يحدث في احداثيا ،x
وال ي يسب بميل الاطوط العمودية الى اليمي او الى اليسار كما في الشكل 4.16ج
اذا كانت ويل ) (a or bسالبة فيكوو السح بابتجاه المعاكسج
بينما السح باتجاه المحور yيحافظ ولى احداثيا xويغير احداثيا yوال ي
يتسب او تتحول الاطوط ابفقية الى قطوط لها ميل لألولى او لألسفل كما في
الشكل 4.17ج
155
اساسيات الرسم بالحاسوب
4.2.5االنعكاس Reflection
ابنعكاس و لورب الكياو ابللي في المرآبج بكعل اقر ،م الممك القول انها
وملية تدوير بزاوية 180دربة ،مع معحظة او حجل الكياو ب يتغيرج
ابنعكاس م الممك او يكوو حول المحور ،xحول المحور ،yحول نقطة
ابلل ،حول المحور ،y = xوحول المحور y = -xج بحظ الشكل 4.18ج
156
اساسيات الرسم بالحاسوب
انواع االنعكاسات
1ج االنعكاس حول المحور :xفي ه الحالة وكما في الشكل 4.19فاو ويل
ابحداثيا في المحور xب تتغير ،بينما ويل ابحداثيا في المحور y
تضرب بسال واحد مع المحافظة ولى ويمها المطلقة بكعل دويع تتغير
اشارتها اذا موببة تصبح سالبة واذا سالبة تصبح موببة دوو او تتغير
ويمها ج
x’ = x
y’ = - y
م الممك تمليل وعوة ابنعكاس حول المحور xولى شكل مصفوفة كما
يلي:
157
اساسيات الرسم بالحاسوب
2ج االنعكاس حول المحور :yنا ويل احداثيا المحور yتبقى كما ي دوو
تغيير بينما ويل ابحداثي xتضرب بسال واحد تتغير اشارتها ،بحظ
الشكل 4.20ج
x’ = -x
y’ = y
م الممك تمليل وعوة ابنعكاس حول المحور yولى شكل مصفوفة كما
يلي:
158
اساسيات الرسم بالحاسوب
3ج االنعكاس حول نقطة االصل :نعحظ في الشكل 4.24او الكياو يتحول م
الربع ابول الى الربع اللالث بشكل وال يتحول الى الربع المقابل باتجاه
نقطة ابلل و ا يعني او ويل ابحداثيا بي نقطة في الكياو )(x, y
تكوو كع ما سالبة كل واحد منهل يضرب بسال واحد ،بكعل اقر فاو
احداثيا كل م ) (x, yتتغير اشارتها ،بحظ الشكل 4.24ج
x’ = -x
159
اساسيات الرسم بالحاسوب
y’ = -y
ه الععوا م الممك او يعاد تمليلها ولى شكل مصفوفة كما يلي:
160
اساسيات الرسم بالحاسوب
x 4ج االنعكاس حول المحور :y = xفي ا ابنعكاس فاو ويل ابحداثيا
ستبدل مع ويل احداثيا ،yبحظ الشكل 4.26ج
x’ = y
y’ = x
م الممك تمليلها ولى شكل مصفوفة فتكوو:
161
اساسيات الرسم بالحاسوب
5ج االنعكاس حول المحور :y = - xفي ه الحالة فاو ويل ابحداثيا ولى
المحور xستبدل مع ويل ابحداثيا ولى المحور ، yك لك سيحدث تغيير
بإشارب كع القيمتي ج
x’ = -y
y’ = -x
م الممك تمليلها ولى شكل مصفوفة كما يلي:
162
اساسيات الرسم بالحاسوب
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فاو:
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 ;
}
171
اساسيات الرسم بالحاسوب
172
اساسيات الرسم بالحاسوب
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
اساسيات الرسم بالحاسوب
175
اساسيات الرسم بالحاسوب
176
اساسيات الرسم بالحاسوب
177
اساسيات الرسم بالحاسوب
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
اساسيات الرسم بالحاسوب
184
اساسيات الرسم بالحاسوب
وندما تدمج مجمووة ونالر الصورب ثعثية اببعاد ،كل واحدب مع ويمة ومقها،
فاو الناتج و سطح ثعثي اببعاد يدوى نسيج textureج
الكيانا تالع في مرحلة او وضع ثعثي اببعاد بحيث او المنظر الحالي يشتع م
الكاميرا ومصدر الضو بطريقة مشابهة للعالل الحقيقيج
5.3.2نظام االحداثيات
نظال اببعاد اللعثي ينظر له ولى انه توسيع لنظال اببعاد اللنائيج او البعد اللالث
وال ي يملل العمع م الممك تمليله بالمحور Zوال ي و ومودي ويكوو زوايا
وائمة ولى المستوى )(x, yج
185
اساسيات الرسم بالحاسوب
ل لك ،فاو اي نقطة بالتمليل اللعثي يتل ولفها بلعث ابعاد ) (x, y, zم ويل
ابحداثيا ج ه ابحداثيا م الممك ضبطها اي تحديد اتجا ها وفقا لنظامي ج
النظال ابول و نظال اليد اليسرى يسمح لنا لضبط اليد اليسرى الابع اليد
اليسرى مع المحاور بحيث يكوو اببهال منطبع ولى المحور xوالسبابة تكوو
منطبقة ولى المحور yبينما الوسطى تنطبع ولى المحور zكما في الشكل 5.2ج
اما النظال اللاني فهو نظال اليد اليمنى حيث يسمح لنا لضبط اليد اليمنى الابع اليد
اليمنى ولى المحاور بحيث يكوو اببهال منطبع ولى المحور xوالسبابة تكوو
منطبقة ولى المحور yبينما الوسطى تنطبع ولى المحور zكما في الشكل 5.2ج
واضح او الفرق و باتجاه المحور ،zحيث مرب يكوو الجان الموب منه و
باتجا نا ومرب اقرى يكوو بابتجاه البعيد ونا كما في الشكل 5.3ج
186
اساسيات الرسم بالحاسوب
ه و وشوائي ،لك ينبغي للمر او يكوو ولى بينة ابقتيار بي نظال ابحداثيا
م النظال المستادل م وبل حقائ الرسوما الحاسوبية التجاريةج او المشكلة
الرئيسة التي تبرز وند اسقاط النقاط اللعثية اببعاد ولى مستوى ثنائي اببعاد،
وال ي بشكل وال له نظال محاور اليد اليسرىج ا سوف يكوو واضح وندما ننظر
الى مساوط المنظورج
وند نم بة وورض مشهد ثعثي اببعاد ،فاو ناك ودد اكلر م ابوتبارا يج
او تأق بالحسباو بجان ويل ابحداثيا للبعد اللالثج حدود الكياو م الممك ينشا
187
اساسيات الرسم بالحاسوب
باستادال اتحادا ماتلفة لمستوى وسطوح منحنية ،وفي بعض ابحياو نحتاج الى
تحديد المعلوما التي تتعلع بداقل الكياوج
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
189
اساسيات الرسم بالحاسوب
وكل ما ويل و التحجيل في النظال اللنائي ينطبع ولى التحجيل في النظال اللعثيج
مالحظة :في كل ومليا التحجيل يج نقل الجسل الى نقطة ابلل ،القيال بعملية
التحجيل ،ثل اوادته الى مووعه ابلليج لكي يكوو وملك منظل وسهل وليك او
تحدد احدى نقاط الجسل ولى انها نقطة ثابتة ،ويتل نقل كل نقاط الجسل بموببها ،اي
او ه النقطة ستكوو في نقطة ابلل ،فاذا كانت احداثيا النقطة التي يتل
اقتيار ا لتكوو ثابتة ي ) (5, 8, -2ملع ،وليه فاو معامل النقل )(tx, ty, tz
لجميع نقاط الجسل سيكوو ) (-5, -8, 2وبعد ابرا وملية التحجيل فيتل اوادب الجسل
الى مووعه وسيكوو معامل النقل العكسي مساوي الى )(5, 8, -2ج
5.4.3التدوير Rotation
وملية التدوير في النظال اللعثي اببعاد ياتلف وليع و التدوير في النظال اللنائي،
حيث م الممك في النظال اللعثي او نقول بعملية التدوير بأربع طرق و ي:
190
اساسيات الرسم بالحاسوب
مالحظة :في كل ومليا التدوير يج او يتل نقل الجسل الى نقطة ابلل وسبع
وبينا او احدى نقاط الجسل ي التي تنقل وباوي النقاط تنقل بموببها وبعد النقل تتل
وملية التدوير ثل النقل المعاكس الى مووعه ابلليج
مالحظة :التدوير حول اي محور م الممك او يكوو باتجا ي واحد باتجاه دوراو
وقارب الساوة واللاني باتجاه معاكس لدوراو وقارب الساوةج
191
اساسيات الرسم بالحاسوب
ه المعادب م الممك اوادب تمليلها ولى شكل مصفوفة متجانسة كما يلي
التدوير باتجاه معاكس لدوراو وقارب الساوة
اما اذا كاو التدوير باتجاه دوراو وقارب الساوة فاو مصفوفة التدوير ي
ه المعادب م الممك اوادب تمليلها ولى شكل مصفوفة متجانسة كما يلي
الدوراو باتجاه معاكس لدوراو وقارب الساوة
اما اذا كاو التدوير باتجاه دوراو وقارب الساوة فاو مصفوفة التدوير ي
193
اساسيات الرسم بالحاسوب
ه المعادب م الممك اوادب تمليلها ولى شكل مصفوفة متجانسة كما يلي
الدوراو باتجاه معاكس لدوراو وقارب الساوة
اما اذا كاو التدوير باتجاه دوراو وقارب الساوة فاو مصفوفة التدوير ي
مالحظة :يتم التعامل مع الدوران في االشكال الثالثية االبعاد بصورة مختلفة ،حيث
إنه من الضروري تحديد محور الدوران ،ومن الضروري أيضاً االهتمام باتجاه
الدو ارن .والمعادالت أعاله تتبع قاعدة نظام محاور اليد اليسرى ،مما يعنى أن
محور yالموجب يكون رأسيا ،ومحور xالموجب على اليمين و محور zالموجب
إلى داخل الصفحة او الشاشة ،و في هذه الحالة يكون الدوران مع اتجاه دوران
عقارب الساعة عندما ينظر إليه من الناحية الموجبة للمحاور والعكس صحيح بأن
الدوران يكون عكس دوران عقارب الساعة إن نظر إليه من الناحية السالبة
194
اساسيات الرسم بالحاسوب
اوب يج او ينقل المحور العشوائي الى نقطة ابلل ونكرر وندما نقول 1ج
نقل محور او بسل ا يعني نقل احدى نقاط ا الجسل الى نقطة ابلل،
وتنقل كل النقاط ابقرى للكياو او المحور بموب معامع النقل ه ج
اذو نح نحتاج او يمر المحور قعل نقطة ابللج
ابرا ومليا تدوير المحور بحيث او محور التدوير ينطبع ولى احد 2ج
المحاور اللعثج
ابرا وملية تدوير الجسل حول المحور ال ي تل اقتياره وبالزاوية وابتجاه 3ج
التي تل تحديد ا مسبقاج
العمل ولى التدوير العكسي بحيث يتل اوادب محور التدوير الى تنظيمه او 4ج
وضعه ابللي وكس العمليا التي ابريت في الفقرب 2ج
195
اساسيات الرسم بالحاسوب
5ج ابرا وملية النقل العكسي ليكوو المحور في وضعه ابللي وكس
معامع النقل في الفقرب 1ج
مالحظة :كل العمليا السابقة والتي تل تطبيقها ولى محور التدوير تطبع ولى
الجسل او الكياو ال ي نرغ تدويره حول ا المحورج
ربما وندما تقرا الفقرا السابقة ستصاب بايبة امل بو ابمور تعقد اكلر ،ولك
ب تتعجل سنعمل ولى تسهيل وتبسيط ه التعقيدا ج
لكي ننجز وملية التدوير العشوائي بشكل سلسل ،سنحاول ايجاد وعوة بسيطة م
الممك تطبيقها مباشرب ولى اي وملية تدوير حول محور وشوائي ،في الشكل 5.5
يعحظ او الكياو مطلوب تدويره حول المحور ) (P0 Pبزاوية مقدار ا ) (αباتجاه
دوراو وقارب الساوةج
196
اساسيات الرسم بالحاسوب
ل لك سنبدأ بابشتقاق دوو ابلتفا الى الكياو وبعد او نحصل ولى الععوة العامة
نضرب احداثيا بميع نقاط الكياو بالععوة التي توللنا لها ليحدث التدوير
المطلوبج
1ج نقل محور التدوير الى نقطة ابلل ستكوو النقطة P0و ي احدى نقاط
المحور ي النقطة الماتارب لتكوو في نقطة ابلل نفترض او احداثياتها
ي ) , (x, y, zبحظ الشكل 5.6ج يربى معحظة او النقطة Pلها
ابحداثيا ) (A, B, Cالشكل 5.6ج
197
اساسيات الرسم بالحاسوب
2ج ابو حاول تدوير المحور المتجه ) ( بحيث ينطبع ولى المستوى )(xz
تمهيدا بو ينطبع المحور العشوائي ولى المحور ، zل لك سيكوو
التدوير حول المحور ) ،(xوملية التدوير ه تحتاج الى تحديد الزاوية
التي يج او تدور بهاج تحديد الزاوية ليست وملية يسيرب نظرا لعدل توفر
معلوما كافية ،وليه نستادل طريقة افتراضية تساود ولى الولول الى
الهدف المطلوب وذلك باو تفترض انك تسلط ضو ولى محور التدوير
) ( وبالتالي فاو ا الضو سيولد ظل للمحور ولى المستوى ) ،(yzا
الظل و وبارب و قط مشابه للمحور وبما انه موبود ولى المستوى
) (yzفانه سيولد زاوية مقدار ا ( مع المحور )(zج او ابعاد النقطة )(P
ستبقى محافظة ولى ويمها بالنسبة لألبعاد ) (y, zبينما ستكوو ويمتها في
البعد ) (xمساوية الى الصفر بو المحور منطبع ولى المستوى )(yzج
انظر الشكل 5.7ج
شكل :5.7طريقة افتراضية لحساب زاوية التدوير للمتجه ) ( لكي ينطبع ولى
المستوى )(xzج
198
اساسيات الرسم بالحاسوب
=K
sin = B / K
cos = C / K
لنعوض و ويل الجي وبي تمال في مصفوفة التدوير حول المحور )(x
3ج بعد انجاز الاطوب اللانية فاو محور التدوير العشوائي سيكوو منطبع ولى
المستوى ) (xzكما في الشكل 5.8ج
199
اساسيات الرسم بالحاسوب
او محور التدوير ) (Lال ي انطبع ولى المستوى ) (xzم الممك حساب
طوله باستادال نظرية فيلاغورس وحس ابطوال الواضحة في الشكل
5.8ج بحظ او ظل المحور ) ( Kايضا تل تدويره مع تدوير المحور
العشوائي ،بعد التدوير سينطبع الظل ولى المحور ،zبنفس طوله ال ي تل
حسابه في الاطوب السابقةج
محور التدوير العشوائي ال ي انطبع ولى المستوى ) (xzسيولد زاوية
مقدار ا βمع المحور zج
ابو حانت لحظة تدوير المحور العشوائي حول المحور ) (yلينطبع ولى
المحور ) (zسبع ووضحنا باو غاية وملنا و او ينطبع المحور العشوائي ولى
احد المحاور اللعث وم ثل التدوير حس الزاوية المطلوبة ج التدوير سيكوو
بزاوية βوباتجاه دوراو وقارب الساوةج مصفوفة التدوير ي:
200
اساسيات الرسم بالحاسوب
بنفس الطريقة التي استادمت سابقا في الاطوب اللانية ،نحاول او نحس ويل الجي
وبي تمال للزاوية βبابستعانة بأضعع المللث القائل الزاوية ال ي يحتوي ولى
الزاوية βج
=L
K2 = B2 + C2
Then, =L
sin β = A / L
cos β = K / L
201
اساسيات الرسم بالحاسوب
ابو تل تدوير الكياو حول المحور العشوائي باتباع ومليا تحويل متعددب و ي
R ( ) = T . Rx . Ry . Rz
ه العمليا بالرغل م انها تدور الكياو حول محور وشوائي اب انها نقلته لك
الى نقطة ابلل ،ل لك ببد م اوادب الكياو الى مووعه ابللي و ا يتل بعكس
العمليا التي ابريت سابقا وكما يلي:
مما سبع البح لدينا مجمووة م التحويع اذا ما تل اتباوها فسيكوو م الممك
التدوير حول محور وشوائي مع العلل باننا سنستادل احداثيا اثناو م النقاط التي
202
اساسيات الرسم بالحاسوب
العزمة ولى محور التدوير إلنجاز بميع العمليا التحويليةج ادناه المصفوفا
لعمليا التحويل او التدوير حول محور وشوائيج
=L
=K
203
اساسيات الرسم بالحاسوب
) (A, B, Cي احدى النقاط التي تقع ولى المحور العشوائيج
) (x, y, zي نقطة ثانية ولى المحور العشوائيج
باتجاه ه المصفوفة لتنتج وملية السح وليه فاو نقاط اي شكل ستضرب في
المحور )(xج
204
اساسيات الرسم بالحاسوب
باتجاه باي اتجاه اقرج مصفوفة السح بنفس الطريقة م الممك ابرا السح
المحور ) (yي
مالحظة :ويل المتغيرا ) (a, b, cم الممك او تكوو اي ويمة موببة او سالبة
اذا كانت سالبة ستؤدي الى السح بابتجاه المعاكس ج وك لك م الممك وضعها
في اي مكاو قارج القطر الرئيس مع معحظة محور السح ،فملع م الممك او
تكوو مصفوفة السح باتجاه المحور ) (xكما يلي
و ك ا لباوي المحاورج
205
اساسيات الرسم بالحاسوب
فملع اذا اقترنا او يكوو المستوي ) (xyمستوى ابنعكاس فاو ابنعكاس سيحول
النقطة ) (x, y, zالى النقطة ) (x, y,−zوالمصفوفة التي تقول بعملية التحويل
ابنعكاس ه ي
206
اساسيات الرسم بالحاسوب
مالحظة :م الممك ابرا انعكاس قعل محور وشوائي يمر بنقطة ابلل و ا
يعتمد ولى كيفية تدوير المحور العشوائي كما سبع وتل شرحه وم ثل ابرا
وملية ابنعكاسج
207
اساسيات الرسم بالحاسوب
208
اساسيات الرسم بالحاسوب
الفصل السادس
االسقاط
PROJECTION
6.1المقدمة
كما و معلول فاو اي كياو في العالل الحقيقي يملل بلعث ابعاد ليكوو شكل مجسل،
وم الممك او نعرض ولى شاشة الحاسوب اي لورب لكياو م العالل الحقيقي،
ولما كانت شاشة الحاسوب ي ثنائية اببعاد ،ل لك استوب ولينا او نحول
ابشكال اللعثية اببعاد الى اشكال ثنائية اببعاد لنتمك م ورضها ولى شاشة
الحاسوب او شاشة التلفزيوو و ك اج وملية تحويل ابشكال اللعثية اببعاد الى
ثنائية اببعاد تسمى ابسقاطج
6.2التعريف
ابسقاط و تحويل نقطة م فضا ودد ابعاده ) (nالى فضا ودد ابعاده )،(m
حيث او )(m < nج الشائع و التحويل م ثعثي اببعاد الى ثنائي اببعاد وال ي
سنركز وليه في ا الفصلج
مالحظة :كل بسل او كياو يتكوو م مجمووة م النقاط ل لك فاو تحويل نقطة
واحدب يعني اتباع نفس الطريقة لتحويل بميع النقاط التي يتكوو منها الكياوج فملع
المكع يتكوو م مجمووة م النقاط ثماو نقاط تربط بينها قطوط ،ل لك فاو
وملية التحويل تتل بتحويل النقاط اوب ،ثل يتل ربط ه النقاط باطوطج
في الفضا ثعثي اببعاد فأننا نحول نقطة م الفضا ثعثي اببعاد الى مستوى
ابسقاط ثنائي اببعاد )) (projection plane (ppكما في الشكل 6.1باستادال
مساوط تنطلع م مركز ابسقاط ) ) ،(center of projection (COPحيث او
مركز ابسقاط م الممك او يكوو العي او ودسة الكامرا او غير اج
209
اساسيات الرسم بالحاسوب
210
اساسيات الرسم بالحاسوب
6.4انواع المساقط
ناك نوواو رئيسياو م المساوط ،ما المسقط المنظوري )(perspective
ه المساوط الرئيسية تتفرع مجمووة م والمسقط المتوازي )(parallelج م
المساوط ابقرى الفروية كما ي موضحة في الشكل 6.3ج
211
اساسيات الرسم بالحاسوب
ابسقاط المتوازي و تحويل المساحة ثعثية اببعاد الى مستوي ثنائي اببعاد ج في
ا ابسقاط ،كل اشعاوا ابسقاط تكوو متوازيةج في المساوط المتوازية ،فأننا
سنحدد اتجاه ابسقاط بدب م مركز ابسقاطج
وفقا بتجاه ابسقاط ،م الممك ولف ابسقاط المتوازي وفقا الى ابنواع التالية:
1ج المساوط العمودية :تكوو فيها قطوط ابسقاط ومودية ولى مستوى ابسقاطج
2ج المساوط المائلة :مساوط بتكوو فيها قطوط ابسقاط ومودية ولى مستوى
ابسقاطج
في ك ع المس اوط العمودي ة والمس اوط المائل ة ف او قط وط متوازي ة افتراض ية
تن تج م الجس ل المص در ال ى مس توى ابس قاط و ي تقط ع مس توى ابس قاط
بزاوية محددب بنتاج لورب المسقطج
رياضيا ،فاو ابسقاط المتوازي لنقط ة ) (x, y, zول ى المس توى ) (xyتعط ي
)(x+az, y+bz, 0ج اللواب ت ) (a, bبمف رد ل يح ددوو المس قط المت وازيج
فعندما تكوو ويل ) (a=b=0فاو المس قط يق ال ون ه متعام دج با عف ذل ك تك وو
مائلةج اللوابت ) (a, bل يس بالض رورب او تك وو ويمه ا او ل م واح د ,ونتيج ة
ل لك فاو ابط وال المقاس ة ف ي المس قط المائ ل ربم ا تك وو اكب ر او ال غر مم ا
كانت ولي ه ف ي الفض ا ج ف ي المس قط المائ ل الع ال ف او الك را ف ي الفض ا ي تل
اسقاطها ول ى ش كل بيض وي ول ى مس توى ابس قاطج ول يس دائ رب كم ا و ف ي
المسقط المتعامدج
212
اساسيات الرسم بالحاسوب
في حالة ابسقاط الى المستوى xzيتل ا مال ابحداثي yللكياو المعطى ونحصل
ولى ارتفاع للكياو ،وفي حالة ابسقاط ولى المستوى yzسيكوو ارتفاع بانبي
للكياوج
المساوط المتعامدب ي تجميع لرسول ثنائي ة اببع اد والت ي تعم ل مع ا بوط ا تملي ل
كامل حقيقي للكياوج ناك انواع م المساوط المتعامدب منها:
213
اساسيات الرسم بالحاسوب
المسقط المتعامد متعدد المن اظر ل ه مي زب توض يح الش كل ال دويع بثن او او اكل ر م
اوبه الكياو ،بينما في نف س الوو ت ي تع اني م ل عوبة تص ور او تاي ل الش كل
اللعث ي اببع اد للكي او م المن اظر المنفص لةج او و دد المن اظر المطلوب ة لول ف
اببعاد بش كل ك اف للكي او تعتم د ول ى تعقي دا ش كلهج الكي او المتن اظر البس يط م ع
اوبه مربعة م الممك ولفها باستادال اثناو او ثعث مناظر فقطج
لتوضيح الفكرب انظر الى الشكل اللعثي في الشكل 6.6وسنعمل ولى ايجاد المساوط
اللعث له المناظر اللعث ابولى الجانبي والجانبي ج
214
اساسيات الرسم بالحاسوب
لو فرضنا اننا وضعنا الشكل اللعثي في لندوق زبابي مغلع له ستة اوب ه كم ا
في الشكل 6.7ج
215
اساسيات الرسم بالحاسوب
اما المنظر ابولى فم الممك رسمه يدويا بنفس الطريقة وكما في الشكل 6.9ج
وتطبع نفس الطريقة لرسل الجان ابيم م الش كل اللعث ي ول ى وب ه الص ندوق
الزبابي وكما موضح في الشكل 6.10ج
216
اساسيات الرسم بالحاسوب
ابو لو تايلنا امكانية فتح اوبه المكع الزبابي ال ي رسمنا وليه ثعث اوبه م
الشكل اللعثي اببعاد بطريقة مد قط وط ومودي ة م ك ل نقط ة م الجس ل اللعث ي
الى سطح المكع الزبابي ،سنحصل ولى الشكل 6.11ج
217
اساسيات الرسم بالحاسوب
في بعض ابحياو وند بنا مسقط Axonometricفاو الكياو يكوو بشكل منحرف
اي او الوبه المطلوب ليكوو امال الكامرا يكوو منحرف بزاوية و الكامرا ل لك
يحتاج تدوير بزاوية معينة لجل الوبه المطلوب امال الكامرا ويكوو موابه
لمستوى ابسقاط ،بعد وملية التدوير يتل اسقاط الكياو ولى المستوى بشكل
متوازيج
218
اساسيات الرسم بالحاسوب
مساقط Isometric
ف ي مس اوط isometricبمي ع مح اور ابح داثيا ال لعث ي تل تقص ير ا بش كل
متس اوي ،وتك وو الزواي ا ب ي مح اور ابس قاط متس اويةج للحص ول ول ى مس قط
isometricفاو مستوى ابس قاط يج او يقط ع بمي ع مح اور ابح داثيا ال لعث
بزوايا متساويةج ه المساوط تظهر لورب كياو كما تبدو م اتجاه منح رف ،و ي
تفيد بظهار اكلر م وبه واحد في نفس الصورب كما في الشكل 6.14ج
219
اساسيات الرسم بالحاسوب
220
اساسيات الرسم بالحاسوب
221
اساسيات الرسم بالحاسوب
222
اساسيات الرسم بالحاسوب
223
اساسيات الرسم بالحاسوب
#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.20ج
وندما نعمل ولى رسول ثعثية اببعاد فاننا نفكر بالشاشة كناف ب ثنائية اببعاد في
والل ثعثي اببعادج او الكياو وند اسقاطه ولى مستوى ابسقاط سيتغير طوله بنسبة
معينة كما في الشكل 6.21ج
227
اساسيات الرسم بالحاسوب
حيث او
)(a, b, c, d, e, i, g, j
228
اساسيات الرسم بالحاسوب
229
اساسيات الرسم بالحاسوب
230
اساسيات الرسم بالحاسوب
لتوضيح فكرب المسقط المنظوري ،نفرض اننا ننظر الى ولل الزاوية في ملع كرب
القدل الشكل 6.23م بناية وقعل الناف بج اشعة الضو تنتقل باطوط مستقيمة
تنعكس م النقاط المرئية ولى العلل الى اويننا وبر الناف بج افرض ولغرض
التوضيح فقط المحور yوالمحور zود تل تحديد اج في ه الحالة م التحديد فاو
العلل يبعد مسافة zونا ،ويرتفع بمقدار yج لورب العلل ي ترتفع yولى الناف ب
وتبعد zوناج
231
اساسيات الرسم بالحاسوب
ايجاد اببعاد يعتمد ولى الحسابا الملللية للمشهد و ي نظال تشابه الملللا ج
مالحظة :او نقطة ابلل ب تؤثرج اذا مستوى ابسقاط مر قعل الكياو ،وليه فاو
ذلك المقطع م الكياو يظهر بحجمه الطبيعي وشكلة الحقيقيج
بيجاد الععوة الرياضية لرسل المسقط المنظوري ،نفرض او العي او الكامرا في
نقطة ابلل والتي ترى النقطة ) (Pكما في الشكل ،6.24ابو لحساب احداثيا
النقطة ) (Pولى مستوى ابسقاط وندما يتل اسقاطها فاننا سنتبع نظال تشابه
الملللا بنجاز ا العملج
232
اساسيات الرسم بالحاسوب
z=d
233
اساسيات الرسم بالحاسوب
هنا الرسم له نقطتا منظور ،نظرا النه يحتووي علوا اثنوان مون نقواط الت شوي علوا
خط األفق .الجل التوضوي ،،يمكون وضوع نقواط الت شوي هوذ بشوكل عشووائي علوا
طول خط األفق .منظور النقطتان من الممكن اسوتخدامه لرسوم نفول الكيانوات التوي
ترسم باستخدام منظور النقطة الواحدة .هذا الشكل يتولد مث عند النظر في زاوية
منزل ،أو النظر الا طريقين متشوعبة توتقل فيهوا المسوافة .واحودة مون هوذ النقواط
تمثل مجموعة واحودة مون الخطووط المتوازيوة ،بينموا تمثول النقطوة األخورا البواقي.
عند النظر من الزاوية ،فان جدار واحد من المنزل سوف ينحسور الوا الخلوف نحوو
نقطة ت شي واحد في حين أن الجدار اآلخر يتراجع نحو نقطة الت شي المعاكسة.
منظور ال نقطتان يتواجد عندما تكون لوحة الرسم موازية للمشهد الديكارتي في احد
المحواور (عوادة محوور )zولكون لويل للمحوورين اآلخورين .إذا كوان المشوهد الوذي
ينظر إليه يتكون فقط من اسطوانة موضوعة علا مستوا أفقي ،هنا ال يوجد فور
فوووي صوووورة االسوووطوانة بوووين منظوووور النقطوووة الواحووودة ومنظووور النقطتوووان ،انظووور
الشكل .6.25
234
اساسيات الرسم بالحاسوب
مصفوفة ابسقاط المنظوري لنقطتاو ي حيث سيتل ضرب بميع نقاط الشكل في
ه المصفوفة لنحصل ولى نقاط بديدب تملل الشكل في حالة ابسقاط المنظوري
لنقطتاو :
235
اساسيات الرسم بالحاسوب
مصفوفة ابسقاط المنظوري للعث نقاط ي حيث سيتل ضرب بميع نقاط الشكل
في ه المصفوفة لنحصل ولى نقاط بديدب تملل الشكل في حالة ابسقاط
المنظوري للعث نقاط :
236
اساسيات الرسم بالحاسوب
>#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;
ymax = getmaxy();
xp = 300; yp = 320; zp = 100;
238
اساسيات الرسم بالحاسوب
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);
}
x1=(int) b[0][7]; y1=(int) b[1][7];
x2=(int) b[0][4]; y2=(int) b[1][4];
239
اساسيات الرسم بالحاسوب
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ج
الحواف في متعدد ابضعع البسيط تكوو سياج مغلع حول الداقلج السياج م
الممك او يكوو ملتوي بشكل بيد ،ل لك ولينا او نصنف متعدد ابضعع بشكل
اضافي الى متعدد اضعع محدب convexومتعدد اضعع مقعر concaveج
بشكل ولل ،اذا كاو ودد م الاطوط تتصل ببعضها البعض وتكوو شكل مغلع
بحيث تلتقي نقطة البداية للاط ابول مع نقطة النهاية ألقر قط فاو ا الشكل
المغلع يسمى متعدد ابضعع Polygonج في متعدد ابضعع فاو نقطة البداية
ونقطة النهاية ي واحدب انظر الشكل 7.2ج
شكل :7.2 :ابشكال التي تملل متعدد ابضعع والتي بتعتبر متعدد ابضععج
242
اساسيات الرسم بالحاسوب
243
اساسيات الرسم بالحاسوب
244
اساسيات الرسم بالحاسوب
245
اساسيات الرسم بالحاسوب
1ج احس رول ابلتفاف بمعنى ودد مرا او تمر الحافة حول النقطة سوا
باتجاه وقارب الساوة او باتجاه وكس وقارب الساوة ،تكوو ويمة المتجه
اذا كاو اتجا ه م ابولى لألسفل تساوي سال واحد بينما ويمة المتجه
ال ي يكوو اتجا ه م ابسفل لألولى تساوي واحدج
2ج تكوو النقطة قارج متعدد ابضعع اذا كاو ودد الدوراو رول ابلتفاف
يساوي لفرج
3ج تكوو النقطة داقل متعدد ابضعع اذا لل يك رول ابلتفاف يساوي لفرج
للتوضيح اكلر لنعحظ النقطة Pشكل ، 7.7او الاطوا العزمة لحساب رول
ابلتفاف وال ي م ويمته نحدد النقطة قارج او داقل متعدد ابضعع ي ما يلي:
1ج ابتدا يكوو رول ابلتفاف يساوي لفرج
2ج م النقطة Pنرسل قط افقي باتجاه اليسار الى ما بنهايةج
3ج اذا وطع الاط احدى حافا متعدد ابضعع وكانت ه الحافة تتجه م ابسفل
الى ابولى وند ا اضف واحد الى رول ابلتفافج
4ج اذا وطع الاط احدى حافا متعدد ابضعع وكانت ه الحافة تتجه م ابولى
لألسفل وند ا اطرح واحد م رول ابلتفافج
246
اساسيات الرسم بالحاسوب
مالحظة :متعدد ابضعع القياسي ملل المللث ،المستطيل ،الشكل السداسي والتي
ب تقطع نفسها وليس في داقلها فتحة ،فاو طريقة الرول الفردي والزوبي وواودب
رول ابلتفاف ال ي ب يساوي لفر تعطي نفس النتائج بالنسبة لمتعدد ابضعع
القياسيج
مالحظة :اقتبار النقطة لمتعدد ابضعع العال و و متعدد ابضعع ال ي يقطع نفسه
او يحتوي ولى فتحا داقله كما في الشكل ،7.9فاو طريقة الرول الفردي
والزوبي وواودب رول ابلتفاف تعطي نتائج ماتلفة لمتعدد ابضعع العالج
247
اساسيات الرسم بالحاسوب
2ج قط المسح يقطع اضعع متعدد ابضعع م yminالى ymaxاي انه يبدأ
م yminلعودا الى ابولى بزيادب سطر في كل مرب لغاية او يصل الى
ymaxزيادب سطر يعني زيادب ونصر لورب واحدب او تقليل ونصر
248
اساسيات الرسم بالحاسوب
لورب واحدب اوتمادا ولى مووع نقطة ابلل في الشاشة باتجاه المحور
yج
3ج رت نقاط التقاطع ترتي تصاودي م ابول الى ابولى وفقا إلحداثيا
،xترت النقاط ولى شكل ازواج كل زوج يملل وطعة مستقيل وب لك
ستكوو نقاط الشكل 7.10كما يلي:
249
اساسيات الرسم بالحاسوب
شكل :7.11اقتيار لوو ونصر الصورب وفقا الى لوو ابمع وليس لوو الحدودج
الاوارزمية
1ج ابتدا تحديد ويمة نقطة الب رب اي اقتيار نقطة داقل متعدد ابضعع تكوو
نقطة البداية )(seedx, seedyج ويتل تحديد لوو ابمع f-colorوتحديد
لوو الحدود b-colج
2ج حدد ويل الحدود لمتعدد ابضععج
3ج افحص نقطة الب رب اذا كاو لونها و ليس لوو الحدود وليس لوو ابمع ،
به ه الحالة كرر الاطوب 4والاطوب 5لحي الولول الى ونصر لورب
ولى الحدود بلوو حدود متعدد ابضعع ج
4ج غير لوو الب رب ابفتراضي الى لوو ابمع ج
5ج كرر الاطوا ) (3, 4ولى النقاط المجاورب ابربعج
6ج الدالة البرمجية له ه الاوارزمية ي
251
اساسيات الرسم بالحاسوب
ناك مشكلة في ه التقنيةج افرض الحالة التي في الشكل 7.13نح نحاول مأل
كامل المنطقةج نا ،الصور ستمأل بزئياج في بعض الحاب المتجاورا ابربع ب
يمك استادامهاج
في ه التقنية سوف يتل استادال ونالر الصورب اللماو المتجاورب كما في
الشكل 7.14ج سوف نضع ونصر لورب فوق واسفل يمي ويسار ونصر
الصورب الحالي كما فعلنا في المتجاورا ابربعج
يضاف الى ذلك ،سوف يتل وضع ايضا ونصر لورب في المحاور ول لك
ستكوو كامل المساحة لعنصر الصورب الحالي مغطابج ه العملية تستمر
لحي او نجد الحدود بلوو ماتلفج
252
اساسيات الرسم بالحاسوب
الاوارزمية
ابتدا يتل تحديد ويمة نقطة الب رب اي اقتيار نقطة داقل متعدد ابضعع 1ج
تملل نقطة البداية (seedx, seedy) ،ج
في بعض الحاب يكوو المطلوب تحديد لوو ابمع ماتلف و لوو 2ج
الحدود ل لك سنركز نا ولى ه الفكرب و ي بتاتلف كليرا و الحالة
ابولى التي نووشت في المجاورا ابربع ج يتل تحديد لوو ابمع المقترح
f-colorوتحديد اللوو ابفتراضي d-colال ي و اللوو الموبود في
متعدد ابضعع حالياج
حدد ويل الحدود لمتعدد ابضععج 3ج
افحص لوو المجاورا بنفس الطريقة السابقة لك بدب م مطابقتها مع 4ج
لوو الحدود فاو لوو قا سيحدد لهاج تكرر الاطوب 4والاطوب 5لحي
الولول الى ونصر لورب ولى الحدودج
غير اللوو ابفتراضي للب رب الى لوو ابمع ج 5ج
دالة تنفي ه الطريقة للمجاورا اللماو ي: 6ج
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
}
}
254
اساسيات الرسم بالحاسوب
الفص الثامن
النوافــــــــــــــذ والعرض
World Window and Viewports
المقدمة 8.1
تبرز الحابة بشكل مستمر لعرض مشهد م العالل الحقيقي ولى شاشة الحاسوب او
التلفزيوو ،وكما و معلول فاو ابعاد العالل الحقيقي غالبا ب تتناس مع ابعاد الشاشة
مما يستوب التحويل م ابعاد العالل الحقيقي الى ابعاد الشاشة مع المحافظة ولى
اببعاد النسبية للكيانا الماتلفة في العالل الحقيقيج
تمليل اي كياو في فضا العالل الحقيقي يمك او يقاس بالوحدا الفيزيائية او اي
وحدا تستادل بالعالل الحقيقي ملل سنتمتر ،المتر ،كيلو متر ،ميل ،وغير اج
بينما ابهزب العرض وادب تستادل ونصر الصورب وممك وحدا اقرى ،ل لك
ملع نقول شاشة العرض ي 800×600ونصر لوربج
او ابعاد العالل الحقيقي تتراوح بي الكبر والصغر نسبة الى ابعاد الشاشة ،نعحظ
احيانا او ابعاد كيانا في العالل الحقيقي تقاس بابمتار ملل المساك والسيارا
وغير ا ،وربما ناك م تقاس بالميل والكيلومتر ملل لور المدو وتزداد ه
اببعاد لنصل الى ابعاد تقاس بالسني الضوئية كما و الحال مع الكوو الواسع
والفضا العمتنا يج بالمقابل ناك م تقاس بابعاد الغر م ابعاد الشاشة ملع
ابوعل وادوا الكتابة ربما تقاس بالسنتمتر ،وتصغر ه المقاييس لنصل الى
الدالتوو كوحدب وياس للكتل ال ريةج وفي بميع ه ابحوال فاننا بحابة الى طريقة
لعرض ه الكيانا ولى الشاشة بحيث تحافظ ولى بميع لفاتها وابعاد ا النسبيةج
ا الفصل سيركز ولى ومليا التحويل هج
255
اساسيات الرسم بالحاسوب
تعاريف 8.2
ناف ب المشهد :Windowsفي رسول الحاسبة يشير الى مساحة مستطيلة في
نظال ابحداثيا الاا بالكوو يعرف باسل نظال الكوو world systemج
م الممك تعريف ناف ب المشهد بحيث تكوو اكبر ،مساوية ،او الغر م
المدى الحقيقي لقيل البيانا ،اوتمادا ولى رغبتك بعرض البيانا كاملة او
بز منهاج بشكل وال فاو ناف ب المشهد تحدد داقلها المشهد المطلوب ورضه
ولى الشاشة كما في الشكل 8.1ج
ناف ب العرض :viewportو ي تملل مساحة مستطيلة ولى شاشة الجهاز تحدد
في احداثيا منسقة ،والتي يتل ورض لورب البيانا داقلها لورب الكوو
الحقيقي المطلوب ورضه ولى الشاشة ج م الممك ورض الصورب ولى
كامل شاشة العرض او ولى بز م الشاشة ملع الجز العلوي ابيم م
ه الاالية ولى شاشة بهاز شاشة الجهاز ج ربما الكلير منا ود استفاد م
التلفزيوو حيث م الممك تجزأب الشاشة الى مجمووة م اببزا وفي كل
بز يتل ورض واحدب م القنوا ج
ناف ب العرض فضا بزئي للصورب ي وبارب و مستطيل ولى شاشة العرض
النقطية يحدد اي يتل ورض الصورب ،وادب كامل الشاشةج ل لك ،مبدئيا م الممك
او نكرر نفس الصورب بنواف ورض ماتلفة داقل الشاشةج
256
اساسيات الرسم بالحاسوب
او مساحة احداثيا العالل الحقيقي التي يتل اقتيار ا لتصوير او ورض مشهد
تسمى ناف ب المشهدج اما المساحة ولى بهاز العرض الشاشة والتي سيتل بها
ورض الصورب المحددب في ناف ب المشهد تدوى ناف ب العرضج ناف ب المشهد تحدد
ما و المشهد ال ي يج او يعرض ،بينما ناف ب العرض تحدد اي يتل العرض في
الشاشة كما في الشكل 8.2ج
257
اساسيات الرسم بالحاسوب
شكل -A : 8.3ناف ب المشهد وحس احداثيا العالل الحقيقيج -Bناف ب العرض وحس احداثيا
الشاشةج
في الشكل ) (8.3 Aفاو ناك نقطة في العالل الحقيقي تل تحديد ا ضم ناف ب
المشهد ،ه النقطة تل تحويلها لتوضع ضم ناف ب العرض في مكاو يتناس مع
تغيير اببعاد كما في الشكل ) (8.3 Bمع معحظة او المووع النسبي للنقطة لل
يتغيرج
في الشكل 8.3م الممك تكييف او تحويل النقطة وحس ابحداثيا المحددب
للنقطة في ناف ب المشهد والعرضج احداثيا النقطة في ناف ب المشهد ) (xw, ywيتل
تكيفها الى ناف ب العرض لتكوو )(xv, yvج
الصورب الظا رب في ناف ب المشهد ولى شاشة الحاسوب وفي ناف ب العرض
ابعاد ناف ب العرض ي اما او تكوو كامل شاشة الحاسوب او بز م شاشة
الحاسوب وفي اي مووع ضم شاشة الحاسوب ج احداثيا ناف ب المشهد محددب
باحداثيا الزاوية اليسرى السفلى للناف ب ) ،(xmin, yminوك لك احداثيا
الزاوية اليمنى العليا للناف ب ) ،(xmax, ymaxه ابحداثيا م الممك او تغير
وفقا لنقطة ابلل في الشاشة المستادمةج
2ج نقل ه الناف ب ناف ب المشهد الى نقطة ابلل ،تسح النقطة اليسرى السفلى
لتكوو في نقطة ابلل وتسح بميع احداثيا الناف ب بنفس ويل السح ،شكل
8.5ج
259
اساسيات الرسم بالحاسوب
مصفوفة النقل ي
3ج بعد او تل وضع ناف ب المشهد في نقطة ابلل ،حاو الووت لتغيير حجل ه
الناف ب ناف ب المشهد لتكوو بقدر حجل ناف ب العرضج طبعا ه وملية تحجيل
ا ب يمنع م او تكوو وملية تكبير و ي غالبا تكوو وملية تصغير لك
وقصولا مع اببسال الصغيرب بدا في العالل الحقيقي ملل الجزيئة الكيميائية
وغير ا التي نرغ بعرضها ولى شاشة الحاسوب ج وملية حساب معامل
التحجيل بالنسبة للمحور ) (xوالمحور ) (yتحس كما يلي:
معامل التحجيل بالنسبة للمحور ) (xو طول ظلع ناف ب العرض باتجاه x
\ طول ظلع ناف ب المشهد باتجاه xج
معامل التحجيل بالنسبة للمحور ) (yو طول ظلع ناف ب العرض باتجاه \ y
طول ظلع ناف ب المشهد باتجاه yج
للتوضيح اكلر نفرض او احداثيا ناف ب العرض محددب باحداثيا الزاوية
اليسرى السفلى للناف ب ) ،(umin, vminوك لك احداثيا الزاوية اليمنى العليا
للناف ب )(umax, vmaxج وليه فاو
باستادال معاملي التحجيل اوعه يتل تحجيل ناف ب المشهد لتكوو مساوية ببعاد ناف ب
العرض ،الشكل 8.6ج
260
اساسيات الرسم بالحاسوب
4ج الاطوب ابقيرب بعد او تل التحجيل ،و نقل الصورب المحجمة او الناف ب
المحجمة ناف ب المشهد التي البحت بحجل ناف ب العرض الى مووعها النهائي
المحدد لها في شاشة الحاسوبج
نا العملية تاتلف ،وندما نقول النقل فاننا بنعكس وملية النقل التي تمت في
الاطوب ابولى كما كنا نفعل في فصول التحويع اللنائية واللعثية ،وذلك بننا
ب نعيد الكياو الى مووعه ابللي وانما سنعيده الى مووع اقر و و مووع ناف ب
العرض ولى شاشة الحاسوب ،ولكي تنطبع ناف ب المشهد المحجمة مع ناف ب
العرض فسنضع الزاوية اليسرى السفلى لناف ب المشهد ولى الزاوية اليسرى
السفلى لناف ب العرض ،وبالتالي ستنطبع بميع الزوايا ابقرى بي ناف ب المشهد
وناف ب العرض بنها البحت بنفس حجل ناف ب العرض ج وملية النقل ستتل
بمعامل ) ،(umin, vminانظر الشكل 8.7ج
261
اساسيات الرسم بالحاسوب
مصفوفة النقل ي
حي ث او 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ج نقل ناف ب المشهد الى نقطة ابلل:
263
اساسيات الرسم بالحاسوب
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
اساسيات الرسم بالحاسوب
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ج
267
اساسيات الرسم بالحاسوب
الناف ب تدوى وطعج بشكل وال ،فاو ناك ودد م قوارزميا القطع تستادل بزالة
مكونا الصورب التي تقع قارج ناف ب القطعج
ناف ب القطع تحول مع محتوياتها الى ناف ب العرض ليتل ورضها ولى الشاشة كما بينا
في الفصل السابعج م الممك او تكوو ناف ب القطع باشكال ماتلفة ،لك الشكل
المتعارف وليه و استادال ناف ب القطع ولى شكل ذو اربع اضعع كل ضلعي فيه
متوازية مستطيل او مربع ج بحظ الشكل 9.1ج
التي تجرى اثنا وملية كلفة ومليا القطع وكفا تها تعتمد ولى ودد م العمليا
القطع العمليا الرياضية و ي حس ا ميتها وكلفتها:
268
اساسيات الرسم بالحاسوب
م الممك اقتبار وطعة الاط ،اذا كاو الاط يقع بالكامل داقل ناف ب القطعج 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وضع الاطوط نسبة الى ناف ب القطع وبل وبعد القطعج
ناك ودد م الاوارزميا الكفو ب التي تل اوتراحها التي تتصف بالسروة نظرا
لقلة الحسابا الرياضية ج سنحاول توضيح بعض ه الاوارزميا المهمة في ا
الفصل ،بعض ه الاوارزميا لممت قاربيا للتعامل مع الصور ثنائية اببعاد،
بينما البعض ابقر م السهولة او يكيف للتطبيقا ثعثية اببعادج
271
اساسيات الرسم بالحاسوب
حدود ناف ب القطع كما في الشكل 9.3يعحظ باننا كما لو وسعنا حدود ناف ب القطع
اي يتل تمديد ا وبالتالي سنصنع مجمووة م المناطع المجاورب لناف ب القطع ناف ب
القطع تكوو في المركز ج
ه الشفرب يشير الى المووع النسبي له ه المنطقةج حيث او المواوع كل رمز م
تحس نسبة الى ناف ب القطع و ي اما او تكوو ولى يمي او يسار الناف ب ،وك ا
اولى او اسفل الناف بج وند اسناد ويل له ه الرموز ويل ثنائية لفر او واحد فانك
ستتمك م تحديد مووع نهاية الاط نسبة لناف ب القطعج
سيتل تحديد ويل الرموز ابربع في الشفرب م اليمي الى اليسار وفقا لما يلي:
الرمز ابول م اليمي اذا كانت ويمته واحد فهو يملل المووع ابيم نسبة
لناف ب القطعج
الرمز اللاني اذا كانت ويمته واحد فهو يملل المووع ابيسر نسبة لناف ب القطعج
الرمز اللالث اذا كانت ويمته واحد فهو يملل المووع ابولى نسبة لناف ب القطعج
المووع الرابع وابقير اذا كانت ويمته واحد فهو يملل المووع ابسفل نسبة
لناف ب القطعج
272
اساسيات الرسم بالحاسوب
وليه فاو داقل الناف ب ستكوو ويمته ) (0000وذلك بنها المنطقة ابساس التي تقاس
باوي المناطع نسبة لهاج
بحظ المووع اسفل ناف ب القطع وولى يمينها ستكوو شفرته او ويمته ي )،(1001
وذلك بو الرمز ابول تكوو ويمته واحد اذا كاو المووع ولى يمي الناف ب ،ونظرا
بو ا المووع ولى يمي الناف ب ل لك ستكوو ويمته واحد ،الرمز اللاني تكوو ويمته
لفر بنه يملل المووع ابيسر ،اما الرمز اللالث فهو يملل المووع اولى الناف ب ل ا
تكوو ويمته لفر ،بينما الرمز ابقير واحد بنه يشير الى المووع اسفل الناف ب
وواوعا و اسفل الناف بج باقتصار فاو رموز الشفرب تملل كما في الشكل 9.4ج
مالحظة :ب يمك باي شكل م ابشكال او يكوو الرمزي ابول واللاني مساوياو
الى واحد بنفس الووت بو المووع اما يكوو يمي او يسار ،وب يكوو ابثناو معا ،
نفس الشي بالنسبة للرمزي اللالث والرابع ب يمك او يكوو ابثناو واحد بنفس
الووت بو احد ل يملل ابولى وابقر يملل ابسفلج
الشفرب تسند الى نهايا الاطوط وذلك بمقارنة ويل احداثيا نهاية للاط ) (x, yمع
ويل احداثيا حدود ناف ب القطع او م معرفة المنطقة التي تقع فيها نهاية الاط
273
اساسيات الرسم بالحاسوب
واسناد الشفرب لها التي تملل تلك المنطقة حس الشكل 9.3ج فملع الرمز ابول تسند
له القيمة لفر اذا تحقع الشرط التالي
x < xwmin
نفس الشي بالنسبة للرموز اللعث ابقرى تضبط بالمقارنة المشابهةج بغراض
برمجية فاننا نحدد ويل الرموز باتباع الاطوتي التاليتي :
1ج احس الفرق بي احداثيا نقطة نهاية الاط وحدود ناف ب القطعج تطرح
احداثيا النقطة م القيمة العليا المقابلة مرب وتطرح احداثيا النقطة م
القيمة الدنيا المقابلة اي ابحداثي السيني مع السيني والصادي مع الصادي ج
2ج استادل رمز ابشارب المرافع للقيمة الناتجة لكل وملية حساب فرق بي
احداثيا النقطة وحدود الناف ب لضبط الرمز المقابل في الشفربج
حيث اذا كانت اشارب ناتج وملية الطرح سالبة فاو القيمة المقابلة في شفرب
المناطع تكوو واحد وكما يلي ابتدا تكوو بميع الرموز ويمتها لفر :
اذا ) (x – xwminسالبة تضبط الرمز اللاني ولى واحدج
اذا ) (xwmax – xسالبة تضبط الرمز ابول ولى واحدج
اذا ) (y – ywminسالبة تضبط الرمز اللالث ولى واحدج
اذا ) (ywmax – yسالبة تضبط الرمز الرابع ولى واحدج
مالحظة :نقطة ابلل للحالة اوعه ي الزاوية اليسرى العلياج م الممك ضبط
ه القيل نسبة لنقطة ابلل في الحاب ابقرى بسهولةج
بعد او يتل تحديد شفرب المواوع او المناطع لكل نهايا الاطوط فسيكوو م الممك
تحديد اي م الاطوط و بالكامل داقل ناف ب القطع ،او كامل الاط قارج ناف ب
القطع ،او تلك التي تقطع حدود ناف ب القطعج وملية التحديد تتبع القواود التالية:
274
اساسيات الرسم بالحاسوب
وملية فحص نهايا الاطوط منطقيا لغرض معرفة او الاط داقل او قارج ناف ب
القطع تتل باستادال الععوة المنطقية ) (Andبي ويل النهايتي للاط ،وبالتالي الناتج
ه الععوة سيحدد وضع الاط كما يلي: م
اذا كانت النهايتاو الفار فه ا الاط ب يفحص بنه بالكامل داقل ناف ب 1ج
القطع ،وسيرى بالكاملج
اذا كاو ناتج العملية المنطقية يحتوي ولى واحد في اي مووع م مواوع 2ج
الشفرب ابربع يعني او القيمة ب تساوي لفر ،فه ا يعني او الاط بالكامل قارج
ناف ب القطع وبالتالي سوف ب يرى كلياج
اذا كاو ناتج العملية المنطقية لفر فاو الاط يقطع حدود ناف ب القطع، 3ج
وبالتالي سيرى بشكل بزئيج
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.6ك لك يتل تحديد الكود لكل نقطة او نهاية قط وللسهولة نحدد ا
ولى الشكل 9.7مباشربج
277
اساسيات الرسم بالحاسوب
ابو يتل فحص الاطوط باستادال القواود التي اشير لها سابقا اوتمادا ولى كود
نهايا كل قط ،وكما يلي
النهايتاو الفار ل لك فاو كامل الاط يرى )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
اساسيات الرسم بالحاسوب
الناف ب وتكوو نتيجة المقارنة في تبدأ وملية المقارنة مع كل واحد م احداثيا
الجدول جج كما يلي
نا يتل وطع 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
280
اساسيات الرسم بالحاسوب
المقارنة ستكوو بفحص ابحداثيا للمحور xلجميع النقاط فيما اذا كانت اكبر م
ويمة xmax =140الحظ المقارنة تكون مع القيم الجديدة ججج
المقارنة ي )(if x> 140
في ه الععوة فاو النقطة ) (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
اساسيات الرسم بالحاسوب
في ه الحالة فاو النقطتي ) (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
283
اساسيات الرسم بالحاسوب
284
اساسيات الرسم بالحاسوب
بعد انجاز المقارنا مع حدود الناف ب األربع جج نعود لفحص النقاط الجديدب وذلك م
قعل استاراج الكودا لها وفقا لقيمها الجديدب وفحصها كما وملنا في اول قطوب,
فاذا وبدنا قطوط تحتاج الى وطع اضافي نقول ب لك واذا لل نجد فنعتبر النقاط التي
وللنا لها نهائية ويتل رسل الاطوط بموببهاج
ترى Line C-D = 0000 , 0000
ترى Line G-H = 0000, 0000
النتيجة ستكوو كما في الشكل 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;
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();
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
وتسمى احيانا طريقة القطع وطع الاط اوتمادا ولى الحدود او المعامع
)(Parametric line clippingج تعتبر ه الاوارزمية اكفأ م قوارزمية
كو ي سوثربندج
ه الاوارزمية ي حساب كما في قوارزمية سوثربند فاو الهدف ابساس م
نقاط القطع ) (x, yلاط احداثياته ي )) ((x1, y1), (x2, y2مع حدود ناف ب
القطع واوعا في ه الاوارزمية سيتل حساب نهايا الاط ال ي يقع ضم ناف ب
القطع ،وبالتالي سيعاد رسل الاط ال ي في داقل ناف ب القطع وتهمل اببزا
ابقرى م الاط التي ي قارج الناف ب ج
بداية ،او الاط المستقيل ال ي نهاياتاه ي )) ((x1, y1), (x2, y2تقطع حدود ناف ب
القطع في النقطة ) ,(x, yنقطة القطع يتل حسابها وفقا له ه الاوارزمية باستادال
معادلة المعامع ) (parametric line equationكما يلي:
289
اساسيات الرسم بالحاسوب
لو ووضنا و ويل ) (x, yبما يساويها م ويل وفقا للععوا ) (1, 2اوعه فسيكوو
الناتج و
xmin ≤ x1 + t x ≤ xmax
ymin ≤ y1 + t y ≤ ymax
وبالتالي فاو
t = qk / pk
بمقارنة الععوا ) (3, 4, 5, 6مع الععوة ) (7سنحصل ولى:
بموب نواتج ه الععوا سيتل تحديد طبيعة الاط او مووعه نسبة الى ناف ب القطع,
تحليل النتائج يفضي الى:
اذا كاو ) (pk = 0فاو الاط يوازي واحد م حواف ناف ب القطعج
اذا كاو ) (qk < 0لنفس ويمة kفاو الاط قارج ناف ب القطع ,ل ا
يهملج
اذا كاو ) (qk ≥ 0فاو الاط داقل ناف ب القطعج
م اذا كاو ) (pk < 0ا يعني او الاط يبدأ قارج ه الحدود ،ي
الاارج الى الداقل دقول ج
م الداقل الى الاارج ا يعني او الاط ي اذا كانت )(pk > 0
قروج ج
اذا كانت t1 > t2فاو الاط بالكامل و قارج ناف ب القطعج
مالحظة :اذا كانت وطعة قط مستقيل داقل ناف ب القطع ،فاو متوالية م ومليا
القطع المحدودب ستحدث دقول ،دقول ،قروج ،قروج ج بحظ الشكل9.11ج
291
اساسيات الرسم بالحاسوب
،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
اساسيات الرسم بالحاسوب
293
اساسيات الرسم بالحاسوب
295
اساسيات الرسم بالحاسوب
ل لك سوف ب يكوو ناك قط ليرسل يعتبر الاط، (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
اساسيات الرسم بالحاسوب
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.1ج
في الشكل 10.1فاو الشكل ) (Aو تمليل قطي وب يوبد به تغيير ،فهو يسير
باتجاه واحد تغيير ابتجاه ثابت ج بينما الشكل ) (Bفيه اثناو م المتجها ،
المنحني يهبط لعسفل ثل يرتفع لعولى ويولد تقعر واحد اي يحتوي ولى مكاو
واحد لتغيير ابتجاه ،و و يملل معادلة متعدد الحدود التربيعيج
302
اساسيات الرسم بالحاسوب
الشكل ) (Cفيه ثعث متجها و و يملل معادلة متعدد الحدود التكعيبي فيه مووعي
لتغيير ابتجاه ،واقيرا الشكل ) (Dيملل معادلة متعدد الحدود م الدربة الرابعة
وفيها اربع متجها ويحتوي ولى ثعث مواوع لتغيير ابتجاهج بحظ او كل تقعر او
تحدب في المنحني يعني ناك تغيير في ابتجاه متجهاو وم الممك او تشترك
التحدبا او التقعرا المتجاورب بواحد او اكلر م المتجها ج نستنتج م ذلك باو
ودد مواوع تغيير ابتجاه مجموع التقعر و التحدب في المنحنيا تساوي دربة
معادلة متعدد الحدود – 1ج
303
اساسيات الرسم بالحاسوب
لننظر الى الشكل 10.2ونبدا بالاط ال ي نهايتيه ي )),(A(x1, y1), B(x2, y2
وسنستادل طرق المتجها للحصول ولى معادلة المعامع ج
( و ما متجهاو متوازياو كما في الشكل 10.3ج , ) بداية بحظ المتجها
وليه فاو
AP = t . AB
304
اساسيات الرسم بالحاسوب
حيث او ) (tو معامل وددي ،وبو APالغر م ABفاو ناك بعض التقلص
او الضغط في الطرف ابيم م المعادلة و ا يعني او ويمة tستتراوح بي
الصفر والواحدج
AP = t . AB 0 t
لعنتقال م معادلة المتجها الى معادلة المعامع ،كل ما ولينا ومله و فصل
ه المكونا وم ثل تبسيط الععوا وكما يلي
x – x1 = t x2 – t x1
x= x1 – t x1 + t x2
x = (1 - t) x1 + t x2
305
اساسيات الرسم بالحاسوب
306
اساسيات الرسم بالحاسوب
المنحني يرسل ابتدا ا م نقطة بداية محددب الى نقطة النهاية ،اثنا رسل الاط
سيتولد انحنا بالاط يتاثر بنقاط وسطية واحدب او اكلر تسمى نقاط السيطربج في
الشكل 10.5يعحظ او تغيير مواوع نقطة السيطرب ستؤثر ولى شكل الرسل الناتجج
م حظة :شكل المنحني من الممكن السيطرة علي بسهولة بمساعدة مجموعة من
نقاط السيطرة ،control pointsبمعنى ان النقاط تحدد اوال والمنحني سوف يرسم
بحيث يقطع كل واحدة من هذه النقاط واحدة بعد االخرى بتسلسل محدد .زيادة عدد
نقاط السيطرة سيؤدي الى رسم منحني اكثر نعومة.
307
اساسيات الرسم بالحاسوب
308
اساسيات الرسم بالحاسوب
linear شرائح بيزر الاطية يتل الحصول وليها بطريقة ابستيفا الاطي
interpolationبي اثناو م نقاط السيطرب P0 , P1ج
منحني بيزر يعرف بواسطة مجمووة م نقاط السيطرب ) ،(P0 … Pnحيث او n
ي دربة المنحني وندما تكوو n = 1فاو المنحني قطي ،ووندما تكوو 2فاو
المنحني تربيعي ،ووندما تكوو 3فاو المنحني تكعيبي و ك ا ج او اول واقر نقاط
السيطرب ي دائما نقاط النهاية للمنحنيج ولى كل حال ،او نقاط السيطرب الوسطية
اذا موبودب بشكل وال ب تقع ولى المنحنيج
تعتمد طريقة رسل منحنيا بيزر ولى استادال معادلة المعامع ج
بيجاد النقاط التي تساود ولى رسل المنحني ،ولتبسيط الموضوع دونا نلقي نظرب
ولى معادلة المنحنيا بشكل وال ولوب الى الصيغة العامة:
309
اساسيات الرسم بالحاسوب
تمليلها بالنقاط ) ،( P0, P1, and P2ه م الممك تفسير ا كتوليد قطي للنقاط
المتجاورب حيث سيتل توليد قطي م النقطة P0الى النقطة ،P1وم النقطة P1
الى النقطة P2ولى التواليج معادلة منحني بيزر التربيعي م الممك او نعرفها
ولى انه دمج اثناو م منحنيا بيزر الاطيةج
)B(t) = (1 – t) BP0, P1, P2(t) + t . BP1, P2, P3(t 0 t 1
311
اساسيات الرسم بالحاسوب
مالحظة:
او معامع متعدد الحدود تحس وفع الععوة التالية
الكود البرمجي لرسل منحني باستادال منحني بيزر تل اقتيار اربع نقاط في
ه البرنامج
>#include <stdio.h
>#include <stdlib.h
>#include <graphics.h
>#include <math.h
312
اساسيات الرسم بالحاسوب
getch();
closegraph();
return;
}
313
اساسيات الرسم بالحاسوب
)(void main
{
;]int x[4], y[4
;int i
314
اساسيات الرسم بالحاسوب
كلمة شريحة splineاتت م لناوة بنا السف ،حيث انها بابلل تشير الى
شريط نحيف م الاش يستادمه الرسال كمنحنيا ج يتل وضع اوزاو معدنية ولى
سطح الرسل وتمرر ه ابشرطة بي ابوزاو كما في الشكل 10.6ج
315
اساسيات الرسم بالحاسوب
316
اساسيات الرسم بالحاسوب
ودد نقاط السيطرب التي تعرف المنحني يج دائما او تكوو مساوية الى او 1ج
اكبر م رتبة المنحنيج ملالجج المنحني التربيعي رتبته 3يج او يكوو
له ولى ابول ثعث نقاط سيطرب ،التكعيبي ولى ابول اربع نقاط و ك اج
ودد العقد في متجه العقد دائما يكوو مساوي ودد نقاط السيطرب +رتبة 2ج
المنحني ج ملالجج نفرض او المنحني التكعيبي رتبته = 4ويتكوو م
اربع نقاط سيطرب ،وند ا سيكوو له ثمانية ونالر في متجه العقدج
رتبة المنحني تكوو ولى ابول = 2ج 3ج
القيل في متجه العقد يج او تكوو دائما بترتي تصاوديج 4ج
ملال ] [0 0 0 1 2 3 3 3و متجه وقد مقبولج
لك متجه العقد ] [0 0 0 2 1 3 3 3غير مقبول بو بعض القيل في المتجه
الغر م القيل السابقة لهاج
317
اساسيات الرسم بالحاسوب
مالحظة :م المناس ابشارب الى او ويل العقد ب تؤدي الى اي فرقج كل الحسابا
تعتمد فقط ولى نس القيل الى بعضها ،ل لك اذا حافظنا ولى ه النس فاو ذلك
يؤدي الى نفس المنحنيج وليه فاو متجها العقد
][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ج او ووب ومدى ه ابوطاب المغناطيسية يتل ولفها رياضيا
بواسطة دوال ابساسج
319
اساسيات الرسم بالحاسوب
بحظ او نقطة السيطرب المغناطيس تؤثر ولى كامل المنحني ،بالرغل م او
تاثير ا يصبح اضعف كلما ابتعد و نقطة السيطربج ابمتداد الحقيقي للتاثير يتل
حسابه بمتوالية م العقدج
في الشكل 10.9منحني الشرائح المعرف بست نقاط سيطرب ،ويوضح الشكل
10.9تاثير تغيير دربة متعدد الحدود )(2, 3, 4ج
320
اساسيات الرسم بالحاسوب
321
اساسيات الرسم بالحاسوب
مالحظة :اذا كاو ودد نقاط السيطرب يساوي الرتبة ،وليه فاو تحريك أي نقطة
سيطرب يغير الشكل لكامل المنحنيج اما اذا كاو لدينا نقاط سيطرب اكلر م الرتبة،
ه وليه فاو تحريك نقطة معينة سيؤثر فقط ولى المنحني بالقرب م تلك النقطة
الاالية تدوى السيطرب المحلية ) Local controlج
في الحقيقة كل دالة اساس لمنحني الشريحة ابساس ب تساوي لفر بفترا بزئية
متجاورب وليلة ،وكنتيجة ،دوال ابساس لمنحني الشريحة ابساس ي تماما
"محلية"ج
لتك 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
ا التعريف يبدو معقدا ،لك ليس لع الفهلج فاذا كانت الدربة تساوي لفر
) (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
اساسيات الرسم بالحاسوب
شكل :10.12رسل الدالة ابساس م الدربة لفر ولى بعض الفترا المحددبج
325
اساسيات الرسم بالحاسوب
الععوة ) (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.14ج
327
اساسيات الرسم بالحاسوب
مالحظة :تجزئة المنحني بشكل مباشر م الصع القيال به ،ابفضل او يتل تجزأب
او تقسل مدى المنحنيج
328
اساسيات الرسم بالحاسوب
مدى المنحني و ] [0,1ه الفترب المغلقة تقسل الى ما يسمى العقد knotsج
العقد ستكوو 0 <= u0 <= u1 <= ... <= um <= 1ج
تغيير تقسيل المدى ] [0,1يغير شكل المنحنيج
امثلة:
Bi,2 1ج دالة اساس قطية
, Order = 2, degree = 1شكل 10.15ج الدربة = ,1الرتبة = 2
329
اساسيات الرسم بالحاسوب
330
اساسيات الرسم بالحاسوب
331
اساسيات الرسم بالحاسوب
333
اساسيات الرسم بالحاسوب
اذا رسمنا مقطع منحني لكل حالة م الحاب اللعثة اوعه ،سوف نرى او اثني
م مقاطع المنحنيا المتجاورا ترتبط مع بعضها لتكوي منحني وند العقدج بكعل
اوضح ،مقاطع المنحني للحالة ابولى واللانية ترتبط معا وندما ،u = 1بينما مقاطع
المنحني للحالة اللانية واللاللة ترتبط وندما u = 2ج بحظ باو المنحني المتكوو نا
منحني سلس وناول ،شكل 10.21ج
334
اساسيات الرسم بالحاسوب
التعامل مع ابحداثيا
في منحنيا بيزر فاو شكل المنحني يتاثر بجميع نقاط السيطربج اما في منحني
الشرائح ابساسية فانه يتاثر فقط لغاية اورب اربع نقاط سيطرب تؤق بنظر ابوتبار
ا يعني او اولى دربة لمتعدد الحدود و ،3تكعيبي ج
المدقع العزمة لحساب منحني الشرائح ابساسية سوا كاو الرسل يدوي او
برمجي ي احداثيا مجمووة نقاط السيطرب ) ،(n+1حيث او
اذا اوطيت n + 1م نقاط السيطرب , C0, C1, ..., Cnومتجه العقد
} U = { u0, u1, ..., um
فاو النقاط التقريبية لمنحني الشرائح م الدربة ) (pيعرف بواسطة نقاط السيطرب
ه ،ومتجه العقد Uج تكوو معادلة المعامع له ي:
335
اساسيات الرسم بالحاسوب
النقطة ولى المنحني ) C(uiالتي تقابل العقدب uiيشار لها ولى انها نقطة العقدبج
نقاط العقد تقسل منحني الشرائح الى وطع منحنيا ،كل منها يعرف ضم فترب
وقدبج
يشار الى uiولى انها نقطة انكسار او نقطة ابنقعب ) (break pointوالتي تعرف
مجمووة بزئية م نقاط السيطرب والتي تحسبها الدالة ابساسج واحدب م الطرق
البسيطة بقتيار نقاط ابنقعب للحصول ولى فضا منتظل ي
336
اساسيات الرسم بالحاسوب
كما في منحني بيزر ،فاو نقاط السيطرب م الممك او تعمل منحنيا مغلقة وودد
م نقاط السيطرب في نفس المووع سوف تسح المنحني باتجاه نقطة السيطربج
التربيعي:
التكعيبي:
337
اساسيات الرسم بالحاسوب
بالدوال في الجدول اوعه فاننا حسبنا ويل الدوال ابساس وفقا للتعريف الاا
ابساس التالي وال ي وضحناه سابقا
فملع لحساب ) N0, 1 (uسننف معادلة حساب الدوال ابساس كما يلي
338
اساسيات الرسم بالحاسوب
بحظ نا او الععوة اوعه تحتوي ولى وبارتي ابولى تملل ويل الفترب )[0, 0.25
ه الفترب وتساوي لفر قارج حيث ستكوو ويمة ) N0, 0 (uتساوي واحد ضم
ه الفترب ،ل لك فاو النتيجة تكوو
ك لك فاو العبارب اللانية تملل ويل الفترب ) [0.25, 0.5حيث ستكوو ويمة )N1, 0 (u
ه الفترب وتساوي لفر قارج ه الفترب ،ل لك فاو النتيجة تساوي واحد ضم
تكوو
339
اساسيات الرسم بالحاسوب
م ) Ni,1(uم الممك حساب الدوال ابساسية للدربة 2ج حيث او
) ،( m = n + p + 1 = 4وسيكوو لدينا فقط اثناو م الدوال ابساس م
الدربة اللانية ))(N0,2(u), N1,2(uج الجدول التالي يوضح النتائجج
فملع لحساب الدالة ابساس N0,2ضم الفترب ) (0, 0.25سننف معادلة حساب
الدوال ابساس كما يلي
340
اساسيات الرسم بالحاسوب
وم الجدول فاو ويمة )) (N0,1(u) = 2(1- 2uضم الفترب ) (0.25, 0. 5بينما
ويمة ) (N1,1(u) = 4u - 1ضم ذا الفترب ،وند التعويض في المعادلة سيكوو
لدينا
341
اساسيات الرسم بالحاسوب
افرض لديك متجه العقد } 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بحظ الجدول
343
اساسيات الرسم بالحاسوب
)N1,1(uج يتل حسابها وفقا للتعبير قالة ,لنقل نحس دونا ننظر الى حسابا
التالي:
وحيث او ) N1,0(uتساوي لفر في كل مكاو ،ل ا فاو التعبير ابول ستكوو ويمته
لفر مقسومة ولى لفر ويتل تعريفها ولى انها لفرج ل ا ،فاو التعبير اللاني فقط
344
اساسيات الرسم بالحاسوب
ابو ،دونا نحس الدالة ابساسية م الدربة اللانية )Ni,2(uج حيث او ،p = 2
سيكوو لدينا n = m - p - 1 = 6ج الجدول التالي يحتوي ولى بميع )Ni,2(uج
345
اساسيات الرسم بالحاسوب
346
اساسيات الرسم بالحاسوب
)N3,2(uج المعادلة العامة لحساب نقاط قالة كملال ,لنحس دونا ناق حسابا
المنحني ي
347
اساسيات الرسم بالحاسوب
348
اساسيات الرسم بالحاسوب
دوال جاهزة
11.1المقدمة
رسومات ) (C, C++التي تستخدم دوال graphics.hمن الممكان ان تساتخدم لرسام
مختلف االشكال ،عرض النصاوص ،تغييار االلاوان وعيرهاا الكثيار .اساتخدام دوال
graphics.hفاي مترجماات turbo cتمكناك مان كتاباة بارامج الرساوم ،الحركاة،
مشاااريع والعاااب .ماان الممكاان رساام خطااوط ،دوائاار ،مسااتطيالت ،شاارائح ،اشااكال
هندسااية وكثياار عيرهااا .م ان الممكاان تغياار لااون الرساام والخلفيااة باسااتخدام الاادوال
المتوفرة وما االشاكال باالوان .فاي ماا يلاي قائماة ماع شارح مختصار لادوال الملاف
الراسي graphics.hالمبنية داخليا:
دالة القوس تستخدم لرسم قوس يكون مركازه فاي النقطاة ،(x, y)،علاى ان
يتم تحديد زاوية البداية ،زاوية النهاية ،ونصف قطر القوس .دالة القوس من
الممكاان ان تسااتخدم لرساام دائاارة ،لكاان هنااا سااتكون زاويااة البدايااة هااي 0
وزاوية النهاية هي .360الدالة تكتب كمايلي
349
اساسيات الرسم بالحاسوب
مثال
#include <graphics.h>
#include <conio.h>
main()
{
int gd = DETECT, gm;
getch();
closegraph();
return 0;
}
350
اساسيات الرسم بالحاسوب
في المثال اعاله فان ) (100, 100تمثال مركاز القاوس الاذي يبادأ بالزاوياة 0وينتهاي
بالزاوية ،135ونصف قطره .50
.2الشريط bar
دا لة الشريط تستخدم لرسم شاريط مساتطيل ثناائي االبعااد مملاوء .احاداثيات الزاوياة
العليا اليسرى والزاوية السفلى اليمنى مطلوبة لرسم الشريط .دالة رسم الشريط هي
من الممكن استخدام دوال لم الشريط بنماذ او الوان محددة ،سناتي عليها الحقا.
مثال
>#include <graphics.h
>#include <conio.h
)(main
{
;int gd = DETECT, gm
351
اساسيات الرسم بالحاسوب
;)(getch
;)(closegraph
;return 0
}
دالااة الشااريط ثالثااي االبعاااد تسااتخدم لرساام شااريط مسااتطيل ثالثااي االبعاااد
مملااوء .احااداثيات الزاويااة العليااا اليساارى والزاويااة الساافلى اليمنااى مطلوبااة
لرسم الشريط .دالة رسم الشريط هي
الحظ ان قيمة topflagاذا كانت ال تساوي صفر فاان ساطح ثالثاي االبعااد
يوضع ،بخالف ذلك ال يوضع.
352
اساسيات الرسم بالحاسوب
من الممكن استخدام دوال لم الشريط بنماذ او الوان محددة ،سناتي عليها الحقا.
مثال
>#include<graphics.h
>#include<conio.h
)(main
{
;int gd = DETECT, gm
;)(getch
;)(closegraph
;return 0
}
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};
drawpoly(4, points);
getch();
closegraph();
return 0;
}
355
اساسيات الرسم بالحاسوب
مثال
>#include <graphics.h
>#include <conio.h
)(int main
{
;int gd = DETECT, gm
;)(getch
;)(closegraph
;return 0
}
356
اساسيات الرسم بالحاسوب
مثال
#include <graphics.h>
#include <conio.h>
main()
{
int gd=DETECT,gm,points[]={320,150,440,340,230,340,320,150};
fillpoly(4, points);
getch();
closegraph();
return 0;
}
357
اساسيات الرسم بالحاسوب
الحظ هنا اذا اختيرت النقطة ) (x, yخار المساحة المغلقة فان منطقاة الخلفياة هاي
التاي تلاون بينماا الشاكل المغلاق ال يلاون ,اماا اذا كانات النقطاة ) (x, yداخال الشاكل
المغلق فان الشكل المغلق حصرا سيتم م ه باللون.
مثال
>#include <graphics.h
>#include <conio.h
)(main
{
;int gd = DETECT, gm
358
اساسيات الرسم بالحاسوب
setcolor(RED);
circle(100,100,50);
floodfill(100,100,RED);
getch();
closegraph();
return 0;
}
مثال
#include<graphics.h>
#include<conio.h>
main()
{
int gd = DETECT, gm, bkcolor;
initgraph(&gd,&gm,"C:\\TC\\BGI");
bkcolor = getbkcolor();
359
اساسيات الرسم بالحاسوب
getch();
closegraph();
return 0;
}
مثال
#include<graphics.h>
#include<conio.h>
main()
{
int gd = DETECT, gm, drawing_color;
initgraph(&gd,&gm,"C:\\TC\\BGI");
drawing_color = getcolor();
getch();
closegraph();
360
اساسيات الرسم بالحاسوب
;return 0
}
مثال
>#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;
}
مثال
#include<graphics.h>
#include<conio.h>
main()
{
int gd = DETECT, gm, color;
initgraph(&gd,&gm,"C:\\TC\\BGI");
getch();
closegraph();
362
اساسيات الرسم بالحاسوب
return 0;
}
مثال
#include <graphics.h>
#include <conio.h>
main()
{
int gd = DETECT, gm;
getch();
closegraph();
return 0;
}
363
اساسيات الرسم بالحاسوب
مثال
>#include <graphics.h
>#include <conio.h
)(main
{
;int gd = DETECT, gm
;)(getch
;)(closegraph
;return 0
}
.14رسم خط line
تسااتخدم هااذه الدالااة لرساام خااط مسااتقيم بااين نقطتااين ،تكتااب الدالااة بالطريقاة
التالية
364
اساسيات الرسم بالحاسوب
مثال
#include <graphics.h>
#include <conio.h>
main()
{
int gd = DETECT, gm;
getch();
closegraph();
return 0;
}
365
اساسيات الرسم بالحاسوب
مثال
>#include <graphics.h
>#include <conio.h
)(main
{
;int gd = DETECT, gm
;)moveto(50, 50
366
اساسيات الرسم بالحاسوب
مثال
>#include<graphics.h
>#include<conio.h
)(main
{
;int gd = DETECT, gm
;)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
اساسيات الرسم بالحاسوب
;)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;
moveto(100, 100);
moverel(100, -100);
getch();
closegraph();
return 0;
}
370
اساسيات الرسم بالحاسوب
مثال
#include<graphics.h>
#include<conio.h>
main()
{
int gd = DETECT, gm;
getch();
closegraph();
return 0;
}
371
اساسيات الرسم بالحاسوب
مثال
#include<graphics.h>
#include<conio.h>
main()
{
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
getch();
closegraph();
return 0;
}
372
اساسيات الرسم بالحاسوب
مثال
>#include<graphics.h
>#include<conio.h
)(main
{
;int gd = DETECT, gm
;)rectangle(100,100,200,200
373
اساسيات الرسم بالحاسوب
getch();
closegraph();
return 0;
}
sector دالة القطع.22
تكتب الدالة كما يلي.ترسم هذه الدالة مقطع او شريحة بيضوية مملوءة
مثال
#include <graphics.h>
#include <conio.h>
main()
{
int gd = DETECT, gm;
374
اساسيات الرسم بالحاسوب
getch();
closegraph();
return 0;
}
main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
setbkcolor(GREEN);
getch();
closegraph();
return 0;
375
اساسيات الرسم بالحاسوب
}
setcolor ضبط لون الرسم.24
تكتب كما يلي,تضبط هذه الدالة لون الرسم وفقا للون المحدد فيها
main()
{
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
getch();
closegraph();
return 0;
}
376
اساسيات الرسم بالحاسوب
377
اساسيات الرسم بالحاسوب
CLOSE_DOT_FILL,
USER_FILL
};
مثال
#include<graphics.h>
#include<conio.h>
main()
{
int gd = DETECT, gm;
setfillstyle(0, RED);
circle(100, 100, 50);
floodfill(100, 100, WHITE);
getch();
closegraph();
return 0;
}
setlinestyle تحديد نوعية الخط.26
وهي تستخدم مع عدد من,تحدد هذه الدالة نوعية الخط المستخدم في الرسم
.(line, lineto, rectangle, drawpoly) دوال رسم الخطوط مثل
378
اساسيات الرسم بالحاسوب
enum line_styles
{
SOLID_LINE, خط متصل //
DOTTED_LINE, // خط منقط
CENTER_LINE, // خط مقطع بين كل قطعتين نقطة
DASHED_LINE, // خط مقطع
USERBIT_LINE خاص بخطوط من تصميم المستخدم //
;}
379
اساسيات الرسم بالحاسوب
واحد في الرقم بينما التضيء البت الذي يحمل القيمة صفر وبالتالي سنتمكن
من رسم خطوط باشكال مختلفة .فمثال الرقم ) (0xFFFFترسم خط مستمر،
بينما الرقم ) (0x3333سترسم خط متقطع وهكذا.
الحقل االخير هو يمثل سمك الخط حيث ان السمك يحدد بعدد من عناصر
الصورة والرقم الذي يوضع في هذا الحقل يحدد سمك الخط بعنصر صورة.
مثال
>#include <graphics.h
)(main
{
;int gd = DETECT, gm, c , x = 100, y = 50
;)(getch
;)(closegraph
380
اساسيات الرسم بالحاسوب
;return 0
}
.27ضبط صيغة النصوص Settextstyle
هذه الدالة تضبط او تغير طريقة عرض النصوص على الشاشة ،حياث انهاا
تحدد حجم الحروف ،اتجاه طباعة النق ،وتغييار نوعياة الخاط .تكتاب هاذه
الدالة كما يلي
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");
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;
midx = getmaxx()/2;
midy = getmaxy()/2;
getch();
closegraph();
return 0;
}
textheight ارتفاع النق.29
تعيااد هااذه الدالااة ارتفاااع الاانق مقاااس بعنصاار الصااورة الااذي يكتااب ضاامن
الدالة تكتب بالطريقة التالية.الدالة
textheight(char *string);
384
اساسيات الرسم بالحاسوب
مثال
#include<graphics.h>
#include<conio.h>
main()
{
int gd = DETECT, gm, height;
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;
outtext(width);
getch();
closegraph();
return 0;
}
386
اساسيات الرسم بالحاسوب
REFRENCES المصا ر
387
اساسيات الرسم بالحاسوب
388
اساسيات الرسم بالحاسوب
389