خوارزمية بيثون بسيطة اللازمة في العثور على مربع محيط من الشبكات من ملف OBJ

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

  •  11-12-2019
  •  | 
  •  

سؤال

أحاول مشكلة التعبئة باستخدام ملفات Python و OBJ. أنا مبتدئ في بيثون وغير متأكد من كيفية التعامل مع رؤوس ملف OBJ للعثور على المربع المحيط الأمثل. أي نموذج عينة بيثون لإلقاء البدء؟ إليك ملف مربع بسيطة OBJ لتبدأ بحيث أحتاج إلى تنسجم حاوية أكبر. باختصار، يمكن الاعتراض على X يصلح إلى كائن Y. ثم في نهاية المطاف كم من X يمكن أن يصلح إلى Y مع الحل الأمثل، ولكن هذا في وقت لاحق.

إليك ملفات .obj للصناديق الصغيرة والأكبر صغير: giveacodicetagpre.

v -5 -5 0 v -5 -5 5 v 0 -5 0 v 0 -5 5 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 0 -1 0 VN 0 -1 0 VN 0 -1 0 VN 0 -1 0 F 4/4/4 2/2/2 1/1/1 3/3/3 v 0 -5 0 v 0 -5 5 v 0 0 0 v 0 0 5 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 1 0 0 VN 1 0 0 VN 1 0 0 VN 1 0 0 F 8/8/8 6/6/6 5/5/5 7/7/7 v 0 0 0 v 0 0 5 v -5 0 0 V -5 0 5 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 0 1 0 VN 0 1 0 VN 0 1 0 VN 0 1 0 و 12/12/12 10/10/10 9/9/9 11/11/11 V -5 0 0 V -5 0 5 v -5 -5 0 v -5 -5 5 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN -1 0 0 VN -1 0 0 VN -1 0 0 VN -1 0 0 و 16/16/16 14/14/14 13/13/13 15/15/15 v -5 -5 0 v 0 -5 0 v -5 0 0 v 0 0 0 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 0 0 -1 VN 0 0 -1 VN 0 0 -1 VN 0 0 -1 و 20/20/20 18/18/18 17/17/17 19/19/19 V -5 -5 5 V -5 0 5 v 0 -5 5 v 0 0 5 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 0 0 1 VN 0 0 1 VN 0 0 1 VN 0 0 1 و 24/24/24 22/22/22 21/21/21 23/23/23

bigger box: giveacodicetagpre.

v 0 0 0 V 0 0 20 v 0 20 0 v 0 20 20 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN -1 -0 -0 VN -1 -0 -0 VN -1 -0 -0 VN -1 -0 -0 F 4/4/4 3/3/3 1/1/1 2/2/2 v 0 20 0 V 0 20 20 V 20 20 0 V 20 20 20 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 0 1 0 VN 0 1 0 VN 0 1 0 VN 0 1 0 F 8/8/8 7/7/7 5/5/5 6/6/6 V 20 20 0 V 20 20 20 V 20 0 0 V 20 0 20 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 1 0 0 VN 1 0 0 VN 1 0 0 VN 1 0 0 و 12/12/12 11/11/11 9/9/9 10/10/10 V 20 0 0 V 20 0 20 v 0 0 0 V 0 0 20 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 0 -1 0 VN 0 -1 0 VN 0 -1 0 VN 0 -1 0 و 16/16/16 15/15/15 13/13/13 14/14/14 v 0 0 0 v 0 20 0 V 20 0 0 V 20 20 0 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN -0 -0 -1 VN -0 -0 -1 VN -0 -0 -1 VN -0 -0 -1 و 20/20/20 19/19/19 17/17/17 18/18/18 V 0 0 20 V 20 0 20 v 0 20 20 V 20 20 20 VT 0 0. VT 0 1. VT 1 0. VT 1 1. VN 0 0 1 VN 0 0 1 VN 0 0 1 VN 0 0 1 و 24/24/24 23/23/23 21/21/21 22/22/22 giveacodicetagpre.

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

المحلول

أولا للإجابة على السؤال في عنوانك:

  • قم بتحميل كل ملف كائن كقائمة من القمم، أفترض أنك بالفعل HSVE بعض الكود لتحميل ملفات .OBJ في Python (إن لم يكن، يمكنك ضبط هذا loadobj () وظيفة على سبيل المثال، وجعلها ترجع متغير الأفق)
  • لكل كائن، حساب المربع المحيط، E.G.:
    giveacodicetagpre.

    الآن للاختبار إذا كان كائن واحد "يناسب" في الآخر.في الأساس، تريد أن تعرف ما إذا كان المربع المحيط واحد متساويا أو أصغر من الآخر في جميع الأبعاد، كما أفهمك. لذلك،

    • حساب لكل صندوق يحتل حجمه في X، Y و Z، E.G.:
      giveacodicetagpre.

      حظا سعيدا!

نصائح أخرى

سترغب في التكرار فوق بيانات OBJ التي تبحث عن "V والتحقق من تلقاءات X Y و Z التالية وتسجيل أعلى وأقل قيمة في كل مرة تصادفها.يطبع التعليمة البرمجية التالية أعلى قيمة وأقل قيمة لكل بعد ثم يمنحك المربع المحيط من ذلك giveacodicetagpre.

و heres الناتج أحصل عليه giveacodicetagpre.

نأمل أن تكون المنطقية

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