سؤال

في استوديوهات ثلاثية الأبعاد ، تذكرت أن هناك وظيفة (لم أستطع تذكر اسم الوظيفة ، آسف) لخفض نموذج ثلاثي الأبعاد إلى قسمين. على سبيل المثال ، تقوم بإنشاء كرة ، ثم تقطعها في الوسط ، وترك 2 نصف كرات. الآن ، ماذا عن جسم الإنسان؟ تخيل أن الساموراي يقطع عدوًا في المعدة ، والآن سيصبح نموذج العدو نموذجين: أحدهما الجزء العلوي من الرأس إلى المعدة والآخر هو الجزء السفلي من المعدة إلى القدمين. أيضًا ، من أجل منع اللاعب من رؤية داخل نموذج القطع ، يجب أيضًا وضع مضلع إضافي في كلا النموذجين. (ويفضل أن أضف نسيج الدم في هذا المضلع لإعطاء انطباع بأن هذا هو الدم داخل الجسم) آسف إذا كان توضيحي سيئًا ، هل تفهم ما أحاول قوله؟

في استوديوهات ثلاثية الأبعاد ، يمكننا القيام أعلاه. الآن ، برمجة ثلاثية الأبعاد ، ماذا علي أن أفعل إذا أردت تحقيق شيء كهذا؟ من المؤكد أن طريقة واحدة رخيصة هي أن تكون النماذج المقطوعة مسبقًا ، ولكن هذا ليس واقعية.

أنا أبحث عن وسيلة لقطع النموذج إلى اثنين فيما يتعلق بزاوية القطع في الوقت الحقيقي. هل هذا ممكن؟

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

المحلول

انت تحتاج اثنين زوايا لتمثيل "زاوية القطع" في 3 أبعاد.

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

يمكنك بعد ذلك تحديد أجزاء النموذج الموجودة على جانب واحد من الطائرة ، وأي أجزاء موجودة على الجانب الآخر. فقط قم بتوصيل كل نقطة في معادلة الطائرة الخاصة بك ، على سبيل المثال

ax + by + cz + d

.. إذا كانت النتيجة> 0 ، فإن النقطة على جانب واحد ، وإذا كانت <0 ، فهي على الجانب الآخر.

يمكنك اكتشاف مثلثات المثلثات التي تتقاطع مع الطائرة (لأن بعض القمم موجودة على جانب واحد ، بعضها على الجانب الآخر) وتقسيمها إلى مثلثات متعددة للحفاظ على "القطع" مستقيمة ، على سبيل المثال

       /\
      /  \
  --------------- (cut)
    /\    /\
   /  \  /  \
  /    \/    \
  ------------

(لاحظ أنك تحتاج فقط إلى مثلثتين تحت الخط - لست فنانًا :)

بعد ذلك ، إذا قمت بقطع طراز صلب إلى قسمين وتحتاج إلى "تصحيح" فوق الثقب الذي أنشأته ، فستحتاج إلى ذلك التيسيلا (أو مثلث) النقاط على الطائرة الفاصلة إلى إنشاء مضلع جديد هناك. هذا ليس سهلاً دائمًا ، خاصةً إذا لم يكن المضلع محدب.

نصائح أخرى

هذا يسمي قص هناك خوارزميات قياسية لقطع المضلعات في أي نص رسومات كمبيوتر.

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