مكتبة جيدة للرياضيات ثلاثية الأبعاد في C#؟[مغلق]

StackOverflow https://stackoverflow.com/questions/607254

  •  03-07-2019
  •  | 
  •  

سؤال

أنا أكتب أداة سيتم استخدامها لمعالجة مجموعة من البيانات ثلاثية الأبعاد، والقيام بأشياء مثل تدوير الكائنات، والترجمة، والقياس، وكل تلك الأشياء الجيدة.هل يعرف أحد مكتبة جيدة تقوم بالفعل ببعض هذه الأشياء ثلاثية الأبعاد الشائعة؟

لست مهتمًا بتصور البيانات في الوقت الحالي، وأهتم في المقام الأول بتنفيذ العمليات.

الأشياء التي أعلم أنني سأحتاجها في هذه المرحلة:

  • ناقلات 2D/3D/4D
    • (الجمع، الطرح، الضرب النقطي، الضرب الاتجاهي، الخ...)
  • التدوير/الترجمة/القياس باستخدام المصفوفات
  • الرباعيات

لقد تمكنت من تحديد موقع Sharp3D المكتبة، ولكن يبدو أنها قد تفعل ما أريد ولكن لم يتم تحديثها منذ وقت طويل.هل استخدم أحد هذا من قبل؟هل هناك أي اقتراحات أخرى (أفضل)؟

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

المحلول

Microsoft.Xna.Framework (اشحن هذا XNA) يمكنه القيام بهذا العمل.

تحتوي مكتبة XNA Framework Math على أنواع هندسية أساسية متعددة يمكن استخدامها لمعالجة الكائنات في مساحة ثنائية أو ثلاثية الأبعاد.تمثل الكائنات البدائية في هذه المكتبة البيانات المطلوبة لتمثيل كائن هندسي أو عملية على هذا الكائن.يحتوي كل نوع هندسي على عدد من العمليات الحسابية المدعومة للنوع.

المتجه

يوفر إطار عمل XNA فئات Vector2 وVector3 وVector4 لتمثيل المتجهات ومعالجتها.عادةً ما يتم استخدام المتجه لتمثيل الاتجاه والحجم.ومع ذلك، في إطار عمل XNA، يمكن استخدامه أيضًا لتخزين إحداثيات أو بعض أنواع البيانات الأخرى بنفس متطلبات التخزين.

تحتوي كل فئة متجهة على طرق لتنفيذ عمليات المتجهات القياسية مثل:

  • المنتج نقطة
  • المنتوج الوسيط
  • تطبيع
  • تحويل
  • الاستيفاء الخطي أو المكعب أو Catmull-Rom أو Hermite.

المصفوفات

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

الرباعيات

يوفر إطار عمل XNA بنية Quaternion لتمثيل وحساب الدوران الفعال حول المتجه حول زاوية محددة.

نصائح أخرى

لم أستخدمه من قبل مطلقًا ولكني قمت للتو باستخدام Sharp3D ويبدو أنه يعمل بشكل جيد (باستثناء بعض المشكلات المتعلقة بالأسماء القوية التي استغرقت بضع دقائق لحلها).انطباعي هو أنها ليست خفيفة الوزن تمامًا ولكنها بعيدة عن أن تكون على الجانب الثقيل.

فيما يتعلق بعدم وجود تحديثات حديثة، فليس الأمر وكأن الرياضيات تتغير أو أي شيء ...

جرب Scinet Linea على www.obacs.com.إنها ليست مكتبة مجانية ولكن بالمقارنة مع البدائل فهي ليست باهظة الثمن

لم يعد Scinet Linea متاحًا على www.obacs.com بعد الآن.إنه يأتي الآن ضمن Scinet Math الذي يتمتع بقدرات أكبر بكثير.لقد اشتريت نسخة لبحثي منذ شهر.انني معجب به حتى الان.

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