بتـــــاريخ : 2/25/2011 8:03:12 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 461 0

    موضوعات متعلقة


    منحنيات Bezier

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

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

    بسم الله الرحمن الرحيم
    مقدمة :
    بعيدا عن نشأة هذه الطرق من المنحنيات الحرة فإننا في الحقيقة بحاجة الى ان نعرف كيف نتعامل مع هذه المنحنيات الحرة ليكون لك دخرا في التصميم التي في الغالب انك لن تحتاج ان تتعامل مع هذه الأنواع من المنحنيات رياضيا ولكن برمجيا فإنه لاغنى عنك عن تعلم هذه المنحنيات الحرة بإسلوبها الرياضي خاصة لمبرمجي الألعاب او او البرامج الهندسية او ..... .
    وبما ان هذه المنحنيات اصبحت متعارف عليها في جميع مكاتب التصميم ولغات البرمجة وبرامج التصميم من ثنائي البعد وثلاثي البعد أرتأيت ان اشرح هذا الإسلوب من المنحنيات الحرة ليكون اول مقال عربي يتحدث عن هذا الموضوع .

    منحنيات بيزير :
    قامت هذه المنحنيات على مبدأ ان هناك سلسلة من النقاط .
    نقطتين تحددان البداية والنهاية وتسمى النقاط المحددة حيث انهما لوحدهما لا يشكلان أي انحناءة سوى خط مستقيم من نقطة البداية الى النهاية.
    ثم يتوسطهم نقاط تدعى بنقاط التحكم لأنها هي من تتحكم بشكل المنحى وفق معادلات بيزير.
    انظر الرسم

    Resized to 81% (was 800 x 500) - Click image to enlargePosted Image

    فالنقاط P0 و P3 تعتبر محددتا المنحنى والنقاط P1 و P2 تسمى نقاط التحكم .
    وتسمى هذه المنحنيات بمنحنيات الدرجة الثالثة لأنها تتكون من أربعة نقاط ولو تأملنا في معادلتها عندما تمر بنا سنجد انها من الدرجة الثالثة أيضا وكذلك منحنيات ال ثلاث نقاط هي منحنيات درجة ثانية وهكذا وفق القاعدة ن-1 حيث ن = عدد نقاط منحنى بيزير
    ================================================================================
    =======
    كيف يرسم الحاسب هذه المنحنيات ؟
    الفكرة هي استخدام " elegant recursive procedure" الإجرار التكراري .
    فمثلا عند رسم الخط المستقيم .
    1- تلوين البكسلات عند نقاط البداية والنهاية . .
    2- تلوين النقطة في الوسط .
    3- تقسيم الخط الى نصفين .
    4- تنفيذ الخطوتين 2 و 3 على كل من النصفين .
    الى ان لايمكن تمييز البكسات في الخط .
    وعلى هذا المبدأ يقوم الحاسب برسم منحنيات بيريز
    فمثلا لو لدينا النقاط P0, P1/3, P2/3, P1 حيث النقاط المحددة هنا هي P0 و P1
    فإنه يتم تلوين كل من النقاط المحدد كخطوة أولى ومن ثم تحديد الوسط عن طريق
    P1/6 = في الوسط بين P0 وP1/3
    P5/6 = في الوسط بين P2/3 و P1
    Q = في الوسط بين P1/3 و P2/3
    P2/6 = في الوسط بين P1/6 و Q
    P4/6 = في الوسط بين Q و P5/6
    P1/2 = في الوسط بين P2/6 و P4/6
    كما في الشكل التالي
    Posted Image
    لنرسم فوقها نقطة الوسط
    ونقسم الشكل الى نصفين الأول
    P0 و P1/6 و P2/6 و P1/2 .
    والثاني P1/2 و P4/6 و P5/6 وينتهي ب P1 .
    لنقوم بعد ذلك بتكرار الخطوتين الثانية الثالثة في النصفين الى ان نحصل على منحنى يسمى منحنى بيزير .
    ============================================================================
    ============================================================================
    التعامل مع منحنى بيزير رياضيا :
    هذا ما اردت ان نصل اليه لأن الخطوة السابقة أصبحت غير مستخدمة فجميع برامج التصميم واغلب لغات ومكتبات البرمجة توفر دوال لرسمها دون الحاجة لإتباع الخوارزمية السابقة .
    ويمكننا تعريف معادلتها في صيغة عامة حيث درجة منحنى بيزير = n والنقاط من , P1, P0 الى Pn
    اذا :
    مفكوكة نظرية ذات الحدين B(t)=((1-t)+t)^n حيث يضرب كل حد من حدود مفكوكتها ب P0 الى Pn ابتداء من حدها الأول .
    ومنه
    Posted Image
    حيث Xn-X0) t =(X-X0)/(ومنه فإن قيمته تنحصر بين [0,1]
    ومنه فإن Pn=Yn
    او اذا تم تستبدال X ب Y في t فإن Pn=Xn
    ومن هذه المعادلات نستنتج ان
    P(0) = y0
    P(n) = yn

    مثال : اوجد مفكوكة منحنى بيزير من الدرجة الثالثة .
    ((1-t)+t)^3=((1-t)^3)+(3(1-t)^2 * t )+(3(1-t) * t^2)+ (t^3)
    ومنه فإن معادلة منحنى بيزير من الدرجة الثالثة هي التالي
    ((1-t)^3)P0+(3(1-t)^2 * t )P1+(3(1-t) * t^2)P2+ (t^3)P3 B(t)= لكل t=[0,1]
    ومن خصائص منحنيات بيزير
    ان ميل مماس المنحنى عند نقطة P0 =V0= (Y1-Y0)/(X1-X0)
    ومنهV0 Y1=Y0+(X1-X0)*
    وكذلك
    ان ميل مماس المنحنى عند نقطة Pn =Vn= (Yn-Yn-1)/(Xn-Xn-1)
    ومنهVn Yn-1=Yn-(Xn-Xn-1)* . حيث درجة منحنى بيزير= n
    ==============================================================
    محاكاة منحنيات مشهورة بإستخدام منحنيات بيزير .
    للمعلومية ان المحاكاة هنا لايعني تطابق الرسم بنسبة 100% ولكن سوف تكون هناك إختلافات بسيطة لا تؤثر على الشكل العمومي للرسم .
    ومن أحد أشهر أساليب المحاكاة تجزئة النقاط الى مسافات X متساوية لنحدد فيما بعد Y لكل نقطة بمعادلات تفاضلية .
    وكلما زادت عدد النقاط في المحاكاة فإن دقة المنحنى تزداد ولكن كما ذكرنا سابقا فإن الإختلافات سوف تكون بسيطة جدا بحيث انها لا تغير على الشكل العام للمنحنى

    مثال(1)
    قم بمحاكاة قطع مكافئ من النقطة X=-1 الى X=1 .
    فلو أكتفينا بالرسم بنقطتين تحكم + نقطتي التحديد فإن الحل:
    معادلة القطع المكافئ الذي محوره y واتجاهه للأعلى هو X^2=4aY و a=1/4 بإفتراض
    أن نقاط التحديد P0(-1,1) و P3(1,1)
    المسافة بين X0,X3 = 2 .
    ومنه نقسم المنحنى الى ثلاثة أقسام على X لتحديد نقاط التحكم على الإحداثي X وينتج ان المسافة بين كل نقطة ونقطة هو 2/3 اذا النقاط على المحورX هي X0=-1 ,X1=-1/3 ,X2=1/3 ,X3=1
    ووفقا للمعادلتين
    V0 Y1=Y0+(X1-X0)* و Vn Yn-1=Yn-(Xn-Xn-1)*
    فإنه بالإمكان تحديد كل من النقطتين Y1 و Yn-1 .
    ولكن علينا ايجاد dy/dx = 2X/4a
    ومنه اذا علمنا مسبقا ان a=1/4 اذا dy/dx= 2X .
    اذا الممال عند X0=-2 و عند X3=2
    اذا=-1/3 (Y1=1+2/3*(-2
    و
    Y2=1-2/3*2=-1/3
    اذا وبما انه وجدنا أبعاد نقاط التحكم + توفر ابعاد نقاط التحديد فإنه يمكن رسم الشكل وفق النقاط التالية
    P0(-1,1) و P3(1,1) و P1(-1/3,-1/3) و P2(1/3,-1/3)
    Posted Image






    وإليكم بعض المراجع في المرفقات للأسف باللغة الإنجليزية فقط



    محجوز :D

    محجوز
     
    ملف مرفق(ملفات)
     

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

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