سؤال

وأنا أتساءل عما إذا كان من الممكن، كما فعلت ييموت 3 التسارع، لتحويل التسارع قراءات لناقلات 3D.

وأنا أعلم أن خدعة لاستخراج الملعب / لفة، ولكنه يستخدم فقط X و Z التسارع، ولديه مشكلة قفل انحراف.

ما أود هو متجه كامل 3D، والتي يمكن تحويلها إلى التمثيل من أربعة التناوب.

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

المحلول

والتفكير أكثر من ذلك، والتسارع القيم <م> هي مكونات ناقلات كنت أبحث عنه ... لديك فقط للتعبير عن أقصر قوس بين ناقل إشارة وهذه النواقل كما من أربعة.

وعلى سبيل المثال، إذا accel هو (تطبيع) متجه تحتوي على قيم التسارع:

reference = Vector3(0, 0, 1)
axis = crossp(accel, reference)
angle = acos(dotp(accel, reference))
q = Quaternion::from_xyzr(axis, angle)
rotation_matrix = q.matrix()

ولقد اخترت {0، 0، 1} كما متجه المرجعية، لأنها قيم التسارع في "موقف بقية" (ييموت على الطاولة، لافتا نحو لكم).

وهذا يعطي نفس النوع من الحركات X / Z التسارع الملعب / لفة تحويل يفعل، ولكن من دون قفل انحراف في مواقع العمودي.

والمشكلة الوحيدة هي أنك لا تحصل على معلومات حول التناوب المحرز في محور الجاذبية الأرضية ... أعتقد أن هذا هو ما جعل MotionPlus ل.

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