موضوع: Mesh.Intersect ماهو وكيفية التعامل معه ؟

ردود: 3 | زيارات: 1152
  1. #1
    عضو فعال
    تاريخ التسجيل
    Sep 2003
    المنطقة
    مجرة درب التبانة
    ردود
    196

    Thumbs up Mesh.Intersect ماهو وكيفية التعامل معه ؟

    السلام عليكم

    الخاصية Mesh.Intersect من أوامر DirectX 9.0
    جذبتني ولكني لم أعرف كيف أتصرف معها
    رأيتهم يتحدثون عنها في هذا الموضوع ولكني لم أفهم شيئا مما قالوا
    http://dotnetforums.net/showthread.php?t=86214

    أظن أنها خاصة بكشف التصادم
    جربتها فإذا بالنتائج الغريبة التي تظهر معي

    أرجو منكم اعلامي ماهي وكيف أستخدمها بالطريقة الصحيحة وماهي عيوبها ؟


    تحياتي
    سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته


  2. #2
    بسم الله ،،

    بالنسبة للموضوع المشار اليه فلم يوضحوا كل شىء ..

    السائل في المنتدي يريد ان يستخدم الفارة في الالتقاط أو التحديد Picking مثلا شخصية .. سيارة . كمثال في العاب الاستراتجي او RTS - Real Time Strategy .. فانت تختار الشخصية بالماوس كمثال في لعبة Command And Conquer .

    المسالة : كيف يمكن الاختيار من بيئة ثلاثية الابعاد تحتوي علي الاحداثيات (x,y,z) من الفارة و التي تحتوي علي بعدين فقط ( x,y) و تتحرك علي شاشة في بعدين (x,y) .
    هذا ما يريده السائل هناك .. و لكنه لم يوضح المشكلة .

    حل المسألة ( الخوارزم) : الفكرة بسيطة و هي اسقاط شعاع من الماوس علي العالم بحيث اننا افترضنا ان المجسمات في هذا العالم محاطة بكرات (spheres) اى رسمنا كرات حولها و مكتبة D3DX توضح كيفية حساب هذه الكرات المحيطة بالمجسمات .. و الان نختبر اما إذا كان الشعاع و هو متجة له ثلاث مركبات X,Y,Z قطع الكرة ( المجسم) . إذا كان الشعاع قطع الكرة إذن تم الضغط علي المجسم مثلاً و من من ثم الان الشخصية قمنا بتحديدها لكي تمشي في العالم .

    النظرة الرياضية :
    فلنفرض ان مركز الدائرة( في حالة البعدين X,Y) او كرة (X,Y,Z) البعد الثالث ! - ( م) و هناك نقطة علي الدائرة ( ن ) .
    نصف قطر الدائرة ( نق) هو عبارة عن المتجة ( م ن) و إتجاه ( ن طرح م ) .
    و لمعرفة اذا كانت النقطة ( ن ) تقع علي الدائرة يجب ان تحقق هذه المعادلة
    | ن - م | - نق = صفر صحيح ؟ و من اين اتيت يا احمد بهذه المعادلة ؟! المعادلة صحيحة لان ( ن-م) يساوي نصف القطر إذا كان | ن - م | - نق = صفر .. و معني | ن - م | اى القيمة المطلقة ( المعيار ) لانه لا يوجد طول بالسالب ! .. تمام ؟
    و من ثم عرفنا إما اذا كانت نقطة تقع علي الدائرة ، كيف نعرف اذا كان شعاع قطع الدائرة ؟
    عوض عن معادلة الخط المستقيم في بعدين ام إذا كان في الثلاث ابعاد ( استخدم المعادلة البارمترية للخط المستقيم ) .
    فلنفرض اننا في ثلاث ابعاد .. المعادلة هي : F(t) = F0 + t * u
    انجليزي + عربي لمن يدرس بالعربي و الانجليزي
    عوض إذن بهذه المعادلة في المعادلة التي فوق .. ستحصل علي معادلة تربيعية quadrtic function لها بارمتران و هم t1,t2 بعد حل المعادلة ...
    و إذن 1- إذا كان الخط لم يقطع الكرة و بعيد عنها جداً - فانا قيمتين t1,t2 تخيلتين اى هناك جذر لعدد سالب
    2-إذا كان الخط داخل الكرة ( لم يقطعها بعض ) فاحدي القيمتين ستكون سالبة و الاخري موجبة
    3- إذا قطعها فهناك قيميتين موجبتين
    4- اذا كان مماس لها فان t1=t2 و قيميتين موجبتين .


    هذا كل ما في الامر . هذه النظرية عاملة - حتي يستطع مستخدموا البيسك و السى تطبيقها و يمكن الاستعانه بالدايركت اكس للتطبيق علي البيسك او السى ...

    Anderson Ahmed.
    رب زدنِى علماً
    جيتس و اينشتين احدثوا ثورة في مجالاتهم و لكن بعد كل هذا هل استطاعوا ان "يميزوا" بعد كل ذلك ان الله احد لم يلد و لم يولد ؟
    نعم - احمد صالح .
    برمجة الألعابُ هي عملية تــحويل الصور الميتة إلي صور حية - احمد صالح .
    الامـة التى تــفرط فى لغـــتها كالتى تفرط فى عرضها !!!
    انا لو لم اكن مصريا * لوددت أن اكون مصريا

  3. #3
    عضو فعال
    تاريخ التسجيل
    Sep 2003
    المنطقة
    مجرة درب التبانة
    ردود
    196
    شكرا لك أخي أحمد على التوضيح
    سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل