طريقة الجمع بين المربعات المبلطة المحددة كنقاط في المتجهات

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

  •  21-09-2019
  •  | 
  •  

سؤال

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

Diagram

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

المحلول

أول شيء يمكنني التفكير فيه هو (ربما ليس الطريقة الأكثر كفاءة):

1) احصل على المربع المحيط بكامل البلاط - وهو min (x) ، min (y) إلى الحد الأقصى (x) ، الحد الأقصى (y) لجميع x و y من البلاط الخاص بك

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

3) كرر أعلاه في المحور y

الآن لديك مجموعة تحتوي فقط على شرائح الخط الخارجي ، يمكنك الجمع بين تلك التي هي خطي مشترك وما إلى ذلك والحصول على الشكل العام.

سيعمل هذا للأشكال غير المحببة وأيضًا إذا كان لديك ثقوب في بلاطك.

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