منحنيات بيزيه

من ويكي
اذهب إلى: تصفح، ابحث
هذه الصفحة لاتزال تحت الإنشاء، سيتم تحديثها مستقبلاً
منحنى بيزيه من الدرجة الثانية
منحنى بيزيه من الدرجة الثالثة

منحنيات بيزيه Bézier curves طريقة تستخدم لرسم الخطوط المنحنية في الكمبيوتر باستخدام نقاط تحكم في المنحنى كما في الصورة في اليمين، بتحريك نقاط التحكم هذه تتحكم في شكل المنحنى، تستخدم منحنيات بيزيه كثيراً في الرسم المتجهي مثل صور SVG والخطوط وغيرها من تطبيقات الرسوميات، ربما رأيت الأداة Pen Tool في Photoshop، يسمى المنحنى في الصورة الأولى بمنحنى بيزيه من الدرجة الثانية، والثاني يسمى منحنى بيزيه من الدرجة الثالثة، درجة المنحنى تساوي عدد نقاط التحكم ناقص واحد.

منحنيات بيزيه التربيعية

سنبدأ بطريقة اشتقاق منحنى بيزيه من الدرجة الثانية الذي يستخدم ثلاثة نقاط تحكم [math]P_0[/math] و[math]P_1[/math] و [math]P_2[/math]، الفكرة هنا هي استخدام مستقيم أطرافه [math]Q_0[/math] و [math]Q_1[/math] -المستقيم الأخضر في الصورة- واستكمال النقطة الأولى [math]Q_0[/math] خطياً بين [math]P_0[/math] و [math]P_1[/math] واستكمال الثانية [math]Q_1[/math] بين [math]P_1[/math] و [math]P_2[/math]، على نفس هذا الخط هناك نقطة سنسميها [math]B[/math] نستخدمها للرسم نستكمها خطياً بين [math]Q_0[/math] و [math]Q_1[/math]، الاستكمال الخطي يتم باستخدام متغير [math]t \in \mathbb{R} \in [0, 1][/math].

نبدأ بالنقاط [math]Q_0[/math] و [math]Q_1[/math]، سنجد أن:

[bmath]Q_0(t) = P_1 t + P_0 (1 - t)[/bmath] [bmath]Q_1(t) = P_2 t + P_1 (1 - t)[/bmath]

وبالنسبة للنقطة [math]B[/math] الواقعة على المستقيم الأخضر الذي أطرافه [math]Q_0[/math] و [math]Q_1[/math]:

[bmath]B(t) = Q_1 t + Q_0 (1 - t)[/bmath]

لو عوضنا قيم [math]Q_0[/math] و [math]Q_1[/math] في المعادلة السابقة سنحصل على معادلة رسم منحنى بيزيه من الدرجة الثانية أو منحيات بيزيه التربيعية الذي يستخدم ثلاث نقاط تحكم [math]P_0[/math] و[math]P_1[/math] و [math]P_2[/math]:

[bmath]\begin{align} B(t) &= B= Q_1 t + Q_0 (1 - t) \\ &= [P_2 t + P_1 (1 - t)] t + [P_1 t + P_0 (1 - t)] (1 - t) \\ &= P_2 t^2 + P_1 (1 - t) t + P_1 (1 - t) t + P_0 (1 - t)^2 \\ \\ B(t) &= \boldsymbol{(1 - t)^2}P_0 + \boldsymbol{2(1 - t) t}P_1 + \boldsymbol{t^2}P_2 \end{align}[/bmath]

لو أردت رسمها بستخدام نقاط [math](x, y)[/math] فستحسب كل نقطة على حده (انبته أن الحدود مثل [math](1 - t)^2[/math] مكرره فلا حاجة لحسابها مرتين):

[bmath]\begin{align} B_x(t) &= \boldsymbol{(1 - t)^2}P_{x_0} + \boldsymbol{2(1 - t) t}P_{x_1} + \boldsymbol{t^2}P_{x_2} \\ B_y(t) &= \boldsymbol{(1 - t)^2}P_{y_0} + \boldsymbol{2(1 - t) t}P_{y_1} + \boldsymbol{t^2}P_{y_2} \end{align}[/bmath]

صيغة المصفوفة

منحنيات بيزيه التكعيبية

منحنيات بيزيه التكعيبية نفس المبدأ عدى أننا سنحتاج لخطين نستكملهما خطياً بين نقاط التحكم الأربعة [math]P_0[/math] و[math]P_1[/math] و [math]P_2[/math] و [math]P_3[/math]، وخط ثالث نستكمله خطياً بين الخطين السابقين، وعلى هذا الخط نستكمل النقطة [math]B[/math] خطياً:


[bmath]B(t) = \boldsymbol{(1 - t)^3}P_0 + \boldsymbol{3 (1- t)^2 t} P_1 + \boldsymbol{3(1 - t)t^2} P_2 +\boldsymbol{t^3} P_3[/bmath]

صيغة المصفوفة

محنيات المستويات الأعلى

فقدان قابلية الاشتقاق عند نقطة الاتقاء يجعل المنحى يبدو منكسر
أداة رسم منحنيات بيزيه في برنامج Inkscape، نلاحظ أن البرنامج يحرك النقطتين بحيث تكون دوماً متقابلة وبينهما نفس المسافة مع نقطة الالتقاء

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

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