منحنيات دائرية من الدرجة الثانية

كما تعلم ، لا تستطيع منحنيات بيزير إنشاء قوس لدائرة أو قطع ناقص. تتناول هذه المقالة المنحنيات التي ليس لها هذا العيب.







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



المنطق الكامن وراء بناء منحنيات Bezier مفهوم جيدًا من الرسوم المتحركة التالية:







للحصول على صيغة مباشرة من تمثيل رسومي ، يكفي تحديد دالة مساعدة للاستيفاء الخطي بين نقطتين ، وعندما تتغير المعلمة t من 0 إلى 1 ، فإنها تُرجع القيم الوسيطة من a إلى b :



مأناx(أوبور)=أ(1-ر)+بر

ملحوظة
- lerp, blend, mix - . .




بمساعدتها ، يمكنك العثور باستمرار على النقاط الضرورية - أولًا

أج=مأناx(أوجور)

و

جب=مأناx(من عندوبور)



ومن ثم تجد من خلالهم

د=مأناx(أجوجبور)



إذا رغبت في ذلك ، يمكنك استبدال الوظائف ببعضها البعض وتقليلها - على الرغم من أن هذا لا يبسط الحسابات بشكل خاص ، إلا أنه سيسمح لك بتعميم المنحنيات على عدد تعسفي من نقاط التحكم (عبر العديد من حدود برنشتاين). في حالتنا ، نحصل على



د=أ(1-ر)2+بر2+2جر(1-ر)



يتم تحقيق زيادة ترتيب المنحنيات بشكل تافه - لا يتم تعيين النقاط الأولية ثابتة ، ولكن نتيجة الاستيفاء بين n + 1 نقاط تحكم أخرى:





ملحوظة
, . .


منحنيات دائرية





قوس الدائرة



لبناء قوس لدائرة بطريقة مماثلة ، من الضروري تحديد منطق البناء المناسب - عن طريق القياس مع رسم دائرة بالبوصلة.





في البداية ، لا نعرف مركز الدائرة d - يتم العثور عليها من خلال تقاطع الخطوط العمودية مع الظل عند النقطتين أ و ب (المشار إليها فيما يلي بالعقدة) ؛ يتم تحديد الظلال نفسها باستخدام النقطة ج (المشار إليها فيما بعد بالمبدأ التوجيهي). لإنشاء قوس دائري عشوائي (أقل من 180 درجة) ، يكفي أن تكون المسافات من نقطة الاتجاه إلى النقاط العقدية هي نفسها.





قوس القطع الناقص



يعد إنشاء قوس القطع الناقص أكثر صعوبة - فأنت بحاجة إلى متجهين يدوران في اتجاهات مختلفة ( مزيد من التفاصيل هنا )





باستخدام الطريقة أعلاه لإيجاد النقطة d ، لم يعد بإمكاننا بناء قوس عشوائي من القطع الناقص - فقط من 0 درجة إلى 90 درجة (بما في ذلك الدوران بزاوية معينة).



قوس hypotrochoid



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





يمكن رؤية كيفية تغير شكل المنحنى اعتمادًا على موضع نقطة الدليل في الرسم المتحرك التالي:







الخوارزمية



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



1) ابحث عن نقطة تقاطع القواعد المعيارية للظلال المرسومة من نقطة الاتجاه إلى النقاط العقدية:



د=(2أ-ج)(ج-ب)أ+(2ب-ج)(أ-ج)ب-ج(أ-ب)ج(ج-ب)أ+(أ-ج)ب-(أ-ب)ج

(هنا تشير علامة النجمة إلى الاقتران المعقد).



2) بمعرفة د ، نجد أطوال القواعد



صميلادي=|أ-د|

صب=|ب-د|





ومجموعها وفرقها



صم=12(صميلادي+صب)

صس=12(صميلادي-صب)





3) ابحث عن متجه الوحدة الذي يبدأ منه البناء



الخامس=أ-د|أ-د|



ملحوظة
sign(x).





4) أوجد المسارات الزاوية التي يجب أن يمر بها كل متجه



ϕم=حج(أ-دب-د)

ϕس=حج(-أ-دب-د)



ملحوظة
, — . — , . . .



, — , - ; .



. ,

حج(أ-د)-حج(ب-د)



— - .


5) بالتغيير المتتالي لـ t من 0 إلى 1 بخطوة ما ، نجد النقطة التي تنتمي إلى المنحنى بواسطة الصيغة



د+الخامس(صمه-أنارϕم+صسه-أنارϕس)





خطوط دائرية



تمامًا مثل منحنيات Bézier ، يمكن دمج هذه المنحنيات لإنشاء خطوط متواصلة متعددة الأجزاء. لضمان السلاسة عند نقاط الربط (الإرساء) ، يجب أن تكون نقطة الربط محاذية لنقطتي اتجاه متجاورتين. للقيام بذلك ، يمكنك تحديد نقاط الربط ليس بشكل صريح ، ولكن من خلال استيفاء نقاط الاتجاه. لا يمكن أيضًا تحديدها على الإطلاق ، حيث يتم حسابها تلقائيًا تمامًا - على سبيل المثال ، كمتوسط ​​بين نقاط الدليل:







على اليمين ، للمقارنة ، تم استخدام نفس الأسلوب مع منحنيات Bezier من الدرجة الثانية.



ملاحظات وفروق دقيقة



على عكس منحنيات Bezier ، هنا لا يقع المنحنى دائمًا في شكل الخطوط التي تربط نقاط التحكم ، على سبيل المثال





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



تحتوي هذه المنحنيات أيضًا على قيود على انحناء الخط ، لأن الخوارزمية تختار أصغر مسار لتتبعه ولا يمكن للمنحنى أن يدور حول أكثر من 180 درجة. يؤدي هذا إلى حقيقة أنه مع الاستيفاء المستمر متعدد التعريفات ، يمكن أن تحدث الزوايا الحادة في موضع معين من نقاط الاتجاه (على اليمين - نفس نقاط بيزير):







خاتمة



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



كما أن الطريقة المدروسة لبناء المنحنيات ليست هي الطريقة الوحيدة أيضًا ، فهناك حالة معينة منها عبارة عن أقواس لدائرة وقطعة ناقصة - على الأقل يمكن إنشاء شكل بيضاوي من خلال تقاطع الخطوط المستقيمة في متوازي أضلاع(ومع ذلك ، فشل المؤلف في هذا الإصدار). من الممكن أن تكون هناك حلول أخرى ، بما في ذلك الخيارات الموضحة في المقالة - اكتب في التعليقات إذا كنت تعرف شيئًا عن هذا الموضوع.



يمكن تنزيل الكود المصدري للمقالة من GitHub .



All Articles