سؤال

ومرحبا كل ما خبراء الرياضيات وهناك!

وأنا تكافح مع مشكلة الرياضيات وأنا على أمل أن تتمكن من مساعدتي مع. لقد تحسب زاوية التوجيه باستخدام راديان. ضمن برنامج OpenGL ES أنا أحرك الرجل عن طريق تغيير قيمة وجهة نظري على هذا النحو:



spriteLocation.x -= playerSpeed * cosf(playerRadAngle);
spriteLocation.y -= playerSpeed * sinf(playerRadAngle);

// playerRadAgnle is my angle of direction using radians

وهذا يعمل بشكل جيد جدا للتحرك بلدي العفريت في الاتجاه الصحيح. ومع ذلك، لقد قررت أن تبقي لي شبح "مؤمن" في منتصف الشاشة وتحريك الخلفية بدلا من ذلك. وهذا يتطلب مني أن عكسي بلدي زاوية المحسوبة. إذا توجيهاتي العفريت في راديان ما يعادل 90 درجة، وأريد تحويله إلى 270 درجة. مرة أخرى، وحفظ كل شيء في راديان.

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

وشكرا مقدما ....

و-Scott

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

المحلول

وإضافة / مطروحا منه pi بدلا من ذلك.

نصائح أخرى

وobject_sprite.rotation = warp_direction - 3.14؛

وتحتاج إلى إضافة بي ثم استخدم الباقي بعد القسمة على 2 بي (لجعلها مقيدة ضمن نطاق [0; 2 Pi]).

وجافا سكريبت:

function invertAngle(angle) {
  return (angle + Math.PI) % (2 * Math.PI);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top