الفوائد المعلنة:
بعض السلبيات التي تتبادر إلى الذهن:
أنا رجل رياضيات ، وأنا أفضل استخدام إما الدرجتين 0..1 إما 0..512 لأسباب تتعلق بالمثابرة وتنسيق التظليل. إذا سألتني نفس السؤال قبل عامين أو أكثر ، يمكنني القول إن الراديان أفضل لأنهم "نقيون" بالمعنى الرياضي.
ومع ذلك ، يعد تخزين 2 x Math.PI في ملفات مشكلة (استمرار) ، و "360" أسرع في الكتابة من 2 * PI ، ولا يمكن تمثيلها بوضوح في شكل ثنائي.
تعمل المحركات التي تعتمد على الفلاش بدرجة كبيرة مع درجات:
http://cocos2d-x.org/docs/programmers-guide/sprites/index.html
https://www.youtube.com/watch؟v=zAsDbHXlFWI
كما يعمل المحررون مثل Spine ويخزنون الزوايا بالتقدير الدائري.
شيء غريب آخر هو أننا نستخدم SKEW وهو شيء مصمم رسومات وهو مجرد "(shear.y، -shear.x)" بالمعنى الرياضي ، فنحن نسمح لمثل هذا الفظيع ونجبر المستخدم على استخدام راد في نفس الوقت.
تعارضه بين "عارض المستوى المنخفض" و "عارض الرسومات ثنائي الأبعاد مع دعم المرحلة والأدوات الخاصة به" ، وأعتقد أن pixi أقرب إلى الثانية.
englercj لا بد لي من العمل في هذا الرمز أيضًا ، لدي بالفعل شيء من هذا القبيل في مفترقتي: https://github.com/gameofbombs/gobi/tree/master/src/core/transform
https://github.com/gameofbombs/gobi/blob/master/src/core/math/FlatTransform2d.ts
mreinstein يجب أن أطلب إلقاء نظرة على هذا الرمز أيضًا لأنك تعرف شيئًا عن تحويلات pixi ؛)
اقتراحات من bigtimebuddy & @ GoodBoyDigital ، اجعل واجهة برمجة التطبيقات
// useDegrees
CONVERSION = Math.PI / 180;
// useRadiens
CONVERSION = 1;
set rotation(rot)
{
this._rotation = rot * CONVERSION;
}
ربما مثل Phaser يفعل ذلك؟ الزاوية للدرجات ، والدوران للراديان.
تضمين التغريدة هذا هو أبسط طريقة هناك. يمكن للمحركات التي تعتمد على pixi إصلاح ثابت "التحويل".
englercj Processing تفعل هذا ، وأعتقد أنه قرار تصميم سيئ حقًا. إنه يضر بالنمطية. إذا كان لديك جزء من الكود يقوم بشيء بطريقة ما وحاول استخدام جزء آخر من التعليمات البرمجية (ربما في مكتبة) يفترض الطريقة الأخرى ، فلن يعمل. إذا تأكدت من ضبط وضع الوحدة قبل كل مكالمة لوظيفة متعلقة بالزاوية ، فقد يضمن أن الكود الخاص بك يعمل ولكنه يكسر رمز المكتبة. وإذا كان هناك جزء من كود مكتبة يستخدم الزوايا ، فهل يجب أن يضبط وضع الزاوية؟ قد يضمن ذلك أن الكود الخاص به يعمل على النحو المنشود ولكنه يكسر رمز المستخدم. إنها تقريبًا مثل معضلة السجين لتصميم واجهة برمجة التطبيقات.
OSUblake هذا يبدو أكثر منطقية. بينما لا تشير زاوية الأسماء والدوران صراحة إلى وحدة أو تحظرها ، فهناك بالتأكيد ارتباطات تجعل هذا أكثر منطقية من مثل تخمين 50/50.
أعتقد أن angleDeg
و angleRad
سيكون أفضل على الرغم من ذلك. لماذا لا تجعلها صريحة؟
الزاوية للدرجات ، والدوران للراديان.
قد تكون هذه هي الطريقة التي يقوم بها فيزر ولكن هذا غير متفق عليه عالميًا. الدوران هو الإجراء ، والزاوية هي مقدار ذلك الإجراء الذي حدث. يشار إليها أحيانًا باسم "زاوية الدوران". لذلك ، من الناحية الفنية ، يمكن زيادة التحميل على الزاوية أو الدوران للإشارة إلى نفس الشيء ، ويمكن التعبير عنها بأي وحدة (درجات أو راديان).
أي عمليات حسابية تتضمن التناوب أسهل بكثير مع الراديان. ليس من الصعب حقًا فهم ذلك ؛ Math.PI في منتصف الدائرة ؛ Math.PI * 2 هو دوران كامل.
الدرجات الزمنية الوحيدة المناسبة هي عندما تعرض واجهة مستخدم مرئية لأشخاص تتضمن التناوب ، ويكون جمهورك عبارة عن مجموعة لا تفهم الهندسة الأساسية (على سبيل المثال ، معظم الأشخاص).
أدرك أن هذا رأي ولكن اذهب مع الراديان. تعمل جميع واجهات برمجة التطبيقات الخاصة بالرياضيات في جافا سكريبت على الراديان ، وليس الدرجات ، كما تفعل معظم المكتبات الهندسية التي لا تعتمد على الألعاب.
إذا كان علينا حقًا دعم الجميع في كل شيء ، فأنا أتفق مع @ 1j01 لتوضيح ذلك. ربما .degrees
أو .radians
؟
تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه إذا لم يحدث أي نشاط آخر. شكرا لمساهماتكم.
تم قفل سلسلة الرسائل هذه تلقائيًا نظرًا لعدم وجود أي نشاط حديث بعد إغلاقه. الرجاء فتح قضية جديدة للأخطاء ذات الصلة.
التعليق الأكثر فائدة
ربما مثل Phaser يفعل ذلك؟ الزاوية للدرجات ، والدوران للراديان.