ما هي أسهل طريقة لتحقيق المواءمة بين محور Z مع ناقلات الأمراض؟

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

سؤال

وبالنظر إلى نقطة مثل (0، 0، 0) ومتجه مثل (س، ص، ض). ما هي أسهل طريقة لتحقيق المواءمة بين السلبي Z-محور تركزت في (0، 0، 0) لتشير في اتجاه هذا ناقلات الأمراض؟ ومن الأمثلة باستخدام برنامج OpenGL سيكون موضع ترحيب، ولكن ليس الضروره.

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

المحلول

وهناك الكثير من الطرق المختلفة لتدوير إطار التنسيق أن نشير في اتجاه معين. أنها سوف نغادر وأشار المحور Z في الاتجاه الذي تريد، ولكن مع وجود اختلافات في كيفية المنحى X- ومحاور ذ.

وفيما يلي يحصل لك أقصر التناوب، والتي قد تكون أو لا تكون ما تريد.

vec3 target_dir = normalise( vector );
float rot_angle = acos( dot_product(target_dir,z_axis) );
if( fabs(rot_angle) > a_very_small_number )
{
    vec3 rot_axis = normalise( cross_product(target_dir,z_axis) );
    glRotatef( rot_angle, rot_axis.x, rot_axis.y, rot_axis.z );
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top