بتـــــاريخ : 3/1/2011 9:26:03 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1141 0


    الدرس الثاني Line Scan Conversion

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : Final Heaven | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

    أتمنى قراءة الدرس السابق "الدرس الأول"

    الدرس الثاني Scan Conversion Of A Line

    و كما رأينا كيف نستخدم الأكواد الموجودة في OpenGL و لكن ألم يسأل أحدكم كيف تعمل

    تلك الخطوط التي نقوم برسمها كيف ترسم و هل هي سريعة كفاية و كيف تعمل

    سنرى كيفية رسم الخطوط و ما أفضل طريقة بينها و أسرعها و سأتحدث عن ثلاث طرق

    الطريقة االعادية التي تستخدم معادلة الخطوط العادية Line Equation

    و طريقة Digital Differential Analyzer (DDA) Algorithm

    و أروع طريقة و أسرعها و أفضلها و هي Bresenham's Line Algorithm

    و هذه ثلاث طرق لرسم خط بين نقطتين و سنبدأ:

    Line Equation:
    ارفق صورة : post-84360-1173381010.jpg

    و في هذه الطريقة نقوم بأخذ النقطتين اللتان أريد رسم خط بينهما بإستخدام هذه:


    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

    كلمات مفتاحية  :

    تعليقات الزوار ()