هذه مكتبة Go مصفوفة ورياضيات متجهة متخصصة في إمكانيات رسومات Open GL.
تم إنشاء هذه الحزمة بشكل أساسي من خلال إنشاء التعليمات البرمجية لعمليات المتجهات والمصفوفات الأساسية، على الرغم من أن الوظائف التي تتجاوز ذلك تكون مكتوبة بخط اليد.
يتم تخزين المتجهات والمصفوفات في ترتيب العمود الرئيسي، تمامًا مثل OpenGL، مما يعني أن وسيطة "التبديل" يجب أن تكون خاطئة عند تمرير المتجهات والمصفوفات باستخدام هذه الحزمة.
تنقسم هذه الحزمة إلى حزمتين فرعيتين. تتعامل الحزمة mgl32
مع عوامات 32 بت، وتتعامل mgl64
مع عوامات 64 بت. بشكل عام، ستستخدم الإصدارات 32 بت مع OpenGL، ولكن الإصدار 64 بت متاح في حالة استخدام الامتداد المزدوج أو ببساطة تريد إجراء عمليات حسابية ثلاثية الأبعاد بدقة أعلى بدون OpenGL.
يتم الاحتفاظ بالمستودع القديم، قبل التقسيم بين الحزمتين الفرعيتين 32 بت و64 بت، على github.com/Jragonmiris/mathgl (مسار المستودع القديم)، ولكن لم يعد يتم الاحتفاظ به.
يمكن العثور على الأمثلة في github.com/go-gl/example.
من المحتمل أنك تستخدم مزيجًا من go get
وإصدار Go القديم. تمت برمجة الأداة المساعدة go get
للبحث عن العلامات المطابقة لإصدار Go الحالي. توجد حاليًا علامة لـ Go1.2.2 على سبيل المثال، لذا إذا لم تقم بالترقية إلى Go1.3، فستحصل go get
على واجهة برمجة تطبيقات أقدم. راجع قسم تغييرات واجهة برمجة التطبيقات للحصول على تفاصيل حول وضع علامات على الإصدار.
لا تتردد في إرسال طلبات السحب للميزات وإصلاحات الأخطاء. لاحظ أنه، بصرف النظر عن أخطاء التوثيق، لن يتم قبول طلبات سحب إصلاحات التعريف (travis.yml وما إلى ذلك) ومثال التعليمات البرمجية والتغييرات التافهة للغاية (الوصولات الأساسية) بدون اختبارات تتوافق مع الكود الجديد. إذا كان الأمر عبارة عن إصلاح خطأ، فيجب أن يختبر الاختبار الخطأ.
يتم إنشاء mgl64
مباشرة من الإصدار 32 بت. لتعكس التغييرات، go generate github.com/go-gl/mathgl/mgl32
(أو فقط go generate
في دليل mgl32
). لاحظ أيضًا أنه نظرًا لاستخدام إنشاء التعليمات البرمجية في matrix.go
و vector.go
، فلا ينبغي إجراء أي تغييرات على هذه الملفات مباشرةً. قم بتحرير matrix.tmpl
أو vector.tmpl
ثم قم بتشغيل go create.
من الآن فصاعدًا، لن يتم إجراء أي تغييرات كبيرة على واجهة برمجة التطبيقات (API) بين إصدارات إصدار Go. وهذا يعني في أي وقت زيادة أي "x" في Go1.xx. يتم إجراء استثناءات، بالطبع، لإصلاح الأخطاء. إذا كان إصلاح الخلل يتطلب تغيير دلالات برنامج الاتصال، فسيتم تغييره. (مثال على ذلك هو التحديث الأخير لـ Transpose والذي كان يستخدم عن طريق الخطأ قواعد الصف الرئيسية). قد يتم أيضًا إضعاف الوظائف المهملة عند إصدار الإصدار الرئيسي. قبل إجراء أي تغييرات لكسر واجهة برمجة التطبيقات (API) بالقرب من الإصدارات الرئيسية، سيتم وضع علامة على الالتزام غير المنقطع الأحدث برقم إصدار Go السابق (على سبيل المثال Go1.2.2). في حالة عدم وجود مثل هذه العلامة، يمكن للمرء أن يفترض أنه لم يتم كسر أي شيء.
إزالة EulerToQuat؛ استخدم AnglesToQuat بالترتيب ZYX بدلاً من ذلك.