سؤال

من ويكيبيديا:

عبر المنتج هو العملية الثنائية على اثنين من ناقلات في ثلاثة-الأبعاد ، اقليدي الفضاء أن النتائج في آخر ناقلات الذي هو عمودي على الطائرة التي تحتوي على اثنين من المدخلات ناقلات.

وبالنظر إلى هذا التعريف هو تعريف فقط في ثلاث (أو سبعة, واحد صفر) الأبعاد, كيف يمكن للمرء حساب المنتج عبر اثنين من 2d النواقل ؟

رأيت اثنين من تطبيقات.واحد يعود ناقلات جديدة (ولكن لا يقبل إلا واحد ناقلات) ، وغيرها من عوائد العددية (بل هو الحساب بين اثنين من ناقلات).

تنفيذ 1 (عوائد العددية):

float CrossProduct(const Vector2D & v1, const Vector2D & v2) const
{
    return (v1.X*v2.Y) - (v1.Y*v2.X);
}

تنفيذ 2 (إرجاع ناقل):

Vector2D CrossProduct(const Vector2D & v) const
{
    return Vector2D(v.Y, -v.X);
}

لماذا متفاوتة تطبيقات?ما أود أن استخدام العددية التنفيذ ؟ ما أود أن استخدام ناقلات التنفيذ ؟

سبب سؤالي هو أنني أكتب Vector2D الدرجة نفسي و لا أعرف الطريقة التي يجب استخدامها.

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

المحلول

تنفيذ 1 بإرجاع حجم ناقلات التي ستنجم عن العادية 3D المنتج عبر إدخال ناقلات ، أخذ Z القيم ضمنا 0 (أيعلاج 2D الفضاء الطائرة في الفضاء 3D).3D عبر المنتج سوف يكون عمودي على الطائرة ، وبالتالي يكون 0 X & Y مكونات (وبالتالي العددية عاد هو Z قيمة 3D المنتج عبر ناقلات).

علما أن حجم ناقلات الناتجة عن 3D عبر المنتج هو أيضا مساو المنطقة متوازي الأضلاع بين اثنين من ناقلات, الذي يعطي التنفيذ 1 غرض آخر.هذا بالإضافة إلى أن هذه المنطقة هو توقيع و يمكن استخدامها لتحديد ما إذا كان الدورية من V1 إلى V2 يتحرك في عكس اتجاه عقارب الساعة أو في اتجاه عقارب الساعة.كما تجدر الإشارة إلى أن التنفيذ 1 محددا من مصفوفة 2 × 2 بنيت هذه النواقل.

تنفيذ 2 إرجاع ناقل عمودي على ناقلات المدخلات لا يزال في نفس 2D الطائرة.لا عبر المنتج بالمعنى الكلاسيكي ولكن تتفق في "أعطني عمودي ناقلات" معنى.

علما بأن 3D الفضاء الإقليدية مغلقة تحت الصليب المنتج العملية-وهذا هو ، عبر المنتج اثنين من ناقلات 3D يعود آخر ناقلات 3D.كل ما سبق 2D تطبيقات تتعارض مع أنه في طريقة واحدة أو أخرى.

ويساعد هذا الأمل...

نصائح أخرى

باختصار: إنه اختزال الرموز الرياضية الإختراق.

طويلة التفسير:

لا يمكنك أن تفعل الصليب المنتج مع ناقلات في 2D الفضاء.العملية ليست محددة هناك.

ومع ذلك ، غالبا ما يكون من المثير للاهتمام أن تقييم المنتج عبر اثنين من ناقلات افتراض أن 2D ناقلات تمتد إلى 3D من خلال وضع z-تنسيق إلى الصفر.هذا هو نفس العمل مع 3D المتجهات على xy-الطائرة.

إذا كنت تمديد ناقلات أن طريقة حساب المنتج عبر تمديد ناقلات زوج ستلاحظ أن z-عنصر له قيمة ذات معنى:x و y سوف يكون دائما صفر.

وهذا هو السبب لماذا z-مكون من النتيجة في كثير من الأحيان ببساطة عاد كما العددية.هذا العددية يمكن أن تستخدم على سبيل المثال للعثور على لف ثلاث نقاط في 2D الفضاء.

من محض نظر رياضية الصليب المنتج في 2D الفضاء لا وجود لها ، عددي الإصدار هو هاك 2D المنتج عبر إرجاع ناقلات 2D لا معنى له على الإطلاق.

خاصية أخرى مفيدة الصليب المنتج هو أن حجمه هو ذات الصلة إلى جيب الزاوية بين متجهين:

| أ × ب | = |أ| .|ب| .جا(ثيتا)

أو

جا(ثيتا) = | أ × ب | / (|أ| .|ب|)

حتى في تنفيذ 1 أعلاه ، إذا a و b ومن المعروف سلفا أن تكون وحدة نواقل ثم نتيجة ذلك هو بالضبط أن شرط() القيمة.

تنفيذ 1 هو المجرم دوت المنتج اثنين من ناقلات.أفضل مرجع أعرف من 2D الرسومات ممتازة الرسومات الأحجار الكريمة السلسلة.إذا كنت تفعل الصفر 2D العمل ، حقا المهم أن تكون هذه الكتب.المجلد الرابع وقد مقال بعنوان "ملذات المجرم نقطة المنتجات" هذا ينطبق على الكثير من الاستخدامات لذلك.

واحد رئيسي استخدام المجرم دوت المنتج هو الحصول على تحجيم sin من الزاوية بين متجهين مثل المنتج نقطة ترجع تحجيم cos من زاوية.بالطبع يمكنك استخدام المنتج نقطة و المجرم دوت المنتج معا لتحديد الزاوية بين متجهين.

هنا هو بعد على ذلك ، هنا هو ولفرام الرياضيات عالم المادة.

أنا باستخدام 2d عبر المنتج في حساب للعثور على الجديد الصحيح دوران كائن يجري على طريق متجه القوة في نقطة التعسفي بالنسبة مركز الكتلة.(Scalar Z واحدة.)

مفيدة ناقلات 2D العملية عبر المنتج الذي يعود العددية.أنا استخدامها لمعرفة ما إذا متتاليتين حواف في مضلع ينحني إلى اليسار أو اليمين.

من Chipmunk2D المصدر:

/// 2D vector cross product analog.
/// The cross product of 2D vectors results in a 3D vector with only a z component.
/// This function returns the magnitude of the z value.
static inline cpFloat cpvcross(const cpVect v1, const cpVect v2)
{
        return v1.x*v2.y - v1.y*v2.x;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top