أتمنى قراءة الدرس السابق "الدرس الأول" الدرس الثاني Scan Conversion Of A Line و كما رأينا كيف نستخدم الأكواد الموجودة في OpenGL و لكن ألم يسأل أحدكم كيف تعمل تلك الخطوط التي نقوم برسمها كيف ترسم و هل هي سريعة كفاية و كيف تعمل سنرى كيفية رسم الخطوط و ما أفضل طريقة بينها و أسرعها و سأتحدث عن ثلاث طرق الطريقة االعادية التي تستخدم معادلة الخطوط العادية Line Equation و طريقة Digital Differential Analyzer (DDA) Algorithm و أروع طريقة و أسرعها و أفضلها و هي Bresenham's Line Algorithm و هذه ثلاث طرق لرسم خط بين نقطتين و سنبدأ: Line Equation: و في هذه الطريقة نقوم بأخذ النقطتين اللتان أريد رسم خط بينهما بإستخدام هذه: Y = mX + b و كما نعلم بأن a هي Slope و b هي y intercept of the line أي حدة إعتراض الخط و قاعدة كل واحدة هي: m = (Y2-Y1) / (X2-X1) , SLOPE b = Y1 - mX1 و هنا بداية نقوم بإستخراج كل واحدة ثم نرى إن كان slope أصغر أو يساوي واحد m=<1 فإننا نقوم بتحديد X=X1 و الزيادة عليها و نستخرج من Equation الرقم الآخر و هو Y و نقف عند الوصول إلى X2 أما في حالة m > 1 فإننا نعكس العملية فنقوم بتحديد Y=Y1 و الزيادة عليها و من ثم نستخرج من Equation الرقم الآخر و هو X و نقف عند الوصول إلى Y2 و كما نرى بأن هذه العملية تستخدم أرقام float بشكل كبير فلدي ضرب و جمع float أترون كم هذه العملية مكلفة ل CPU و لذى علينا إيجاد طريقة اسرع و أقل تكلفة من هذه الطريقة و سنجدها في DDA و Bresenham's