سؤال

وأنا قد تحتاج إلى تصور B-المفتاح ( http://en.wikipedia.org / ويكي / B-سين ) في .NET. أنا لا من أين تبدأ. هل هناك أي وسيلة سهلة أو مكتبة للقيام بذلك؟ أنا أفضل أن تفعل ذلك في Silverlight لكن WPF واربح أشكال جيد أيضا. أتصور أن البرمجيات ويهدف الى تنسيق النظام مع بعض نقاط المراقبة التي يمكنك إضافة أو حذف أو الحركة من تسبب في سين أن طلاؤها. علما بأنني تفتقر إلى الخلفية الرياضية. لقد وجدت بعض الأساليب في GDI + التي يبدو أنها مخصصة لشرائح الرسم لكنني لست متأكدا إذا كانت هذه هي B-المفاتيح.

وسيكون موضع تقدير أي نصيحة. المكتبات، رمز، روابط لأدلة أو الاقتراحات العامة هي موضع ترحيب.

هل كانت مفيدة؟

المحلول

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

http://stochfit.svn.sourceforge.net/viewvc/ stochfit / جذع / NURBS /

وأنا لا أذكر كل التفاصيل الرياضية، ولكن سوف نحاول أن نساعد لو كنت أعرف الجواب. حظا سعيدا، كانت هذه المعرفة صعبة للغاية للحصول على من جهتي!

وتحرير - أعتقد تحصل على B-شريحة من هذه الأساليب إذا قمت بتعيين الوزن لحظة معينة إلى 1

.

نصائح أخرى

وA B-المفتاح هو حل لمشكلة، ربما يجب أن تصف مشكلتك ونسأل ما هو الحل الأفضل. GDI + يحتوي DrawBezier وDrawCurve لشرائح الرسم، التي قد تكون نقطة جيدة للبدء. شيء من هذا القبيل:

Point p1 = new Point(10, 10);
Point p2 = new Point(50, 10);
Point p3 = new Point(10, 50);
Point p4 = new Point(50, 50);
e.Graphics.DrawBezier(Pens.Blue, p1, p2, p3, p4);

وP2 و P3 ليست جزء من منحنى ولكن "نقاط السيطرة"، نقلها إلى رؤية الواقع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top