سؤال

ما هي أسهل طريقة لرسم خوارزمية شبكة سداسية؟ كيف يمكنني تقديمها في البيانات؟

على سبيل المثال ، في شبكة مربعة ، يمكنني فقط حفظ إحداثيات XY ..

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

المحلول

لذا Hexagon هي مكتبة أنيقة بالنسبة لألعاب AS3 ، يحتوي على بعض فصول السداسي التي قد تكون مفيدة في بحثك. هذه المقالة لديه بعض التفاصيل لطيفة جدا حول بلاط سداسي في فلاش.

نصائح أخرى

هناك عدة طرق لإدارة إحداثيات خريطة Hex ومعظمها يصرون بشكل غير ملتزم على تعيينها إلى إحداثيات XY وهو أمر مهم فقط لتقديمه. عادة ما يكون شكل من أشكال الإحداثيات القطبية هو الأفضل. لديّ مكتبة بيرل لإدارة معظم حسابات المتجهات التي تعتبر حوسبة مفيدة للغاية في المرجع مثل الذكاء الاصطناعي وأشجار البحث الأخرى.

http://en.wikipedia.org/wiki/polar_coordinate_system

بالنسبة للمقاعد الرخيصة ، فإن الإحداثيات القطبية ترسم نقطة مثل الأصل (مثل الرسم البياني القياسي XY Dicsian) ، ويختار المتجه كخط أساسي (مثل الديكارت) ثم يعين النقاط على أنها (الحجم ، الدرجات).

حيث يضرب هذا حقًا تشغيل المنزل مع خرائط سداسية هو أن كل زاوية نقية هي مضاعف 60 درجة. إذا قمت بتعيين كل جانب من جانب سداسي عشوائي ((A ، B ، D ، E ، F ، G) وتطبيق المتجه باعتباره حجمًا ومواجهًا ، تظهر عدة خصائص مفيدة.

1) يمكن تمثيل كل سداسي عشرية كمجموع لمتجهين مجازين (أو متجه واحد حيث يكون المتجه الثاني بمثابة 0 أو عنصر هوية). على سبيل المثال 1A+1B = 1A1B أو 1B1A. في كلتا الحالتين ، إنها عبارة عن اجتياز من 2 hexes ، بحجم 2 ، ويعين سداسية فريدة من الأصل (0،0). 2) يمكن دائمًا تبسيط المتجهات غير المدمرة إلى متجهين مجازين لتطبيق هذه القواعد: 2) النفي: 1A + 1D = 0 ، 1B + 1E = 0 ، 1C + 1F = 0 ، EG 3) الجمع: 1A + 1C = 1B ، 1B + 1D = 1C ، 1C + 1E = 1D ، 1D + 1F = 1E ، 1E + 1A = 1F

مع وضع هذه المبادئ في الاعتبار ، يحتاج الصاروخ الذي يجب اجتياز المساحة الفعلية ، إلى الحفاظ على المتجهات كسلسلة أو ترتيب من أجهزة المرور الأصغر. يمثل 1A + 1A + 1C + 1C صاروخًا يسافر اثنين من Hexes ثم البنوك بحدة (120 درجة) وتسافر اثنين من Hexes ، وإنهاء اجتيازها فقط 2 hexes بعيدا ولكن 60 درجة خارج المسار من الاتجاه الأولي.

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

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

الحجم foreach ، --- ملء الحلقة مع كل مجموعة من المتجهات المجاورة. هناك عدد من الطرق للقيام بذلك ، ولكن أبسط هو اختيار متجه واحد كقاعدة ثم اجتياز الحجم في الاتجاه المناسب والمدار مع منعطف 60 درجة. على سبيل المثال ، الحجم 3 ، ابدأ في 3E ، ثم اذهب 3A ، 3B ، 3C ، 3D ، 3E ، 3F حساب كل سداسي عشرية كمبالغ من آخر سداسية تم اجتيازها وناقل سداسي واحد جديد. --- في كل من هذه السداسيات ، قم بتطبيق بعض المثلثات لحساب مكان وجود بكسل الوسط بالنسبة إلى بكسل أصلك ويقدم السداسي

أتمنى أن يساعد ذلك شخص ما. خرائط السداسية الصخور. جعلهم يمتصون قليلا.

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