2012-09-08 6 views
14

इसे बनाया गया! पोस्ट के नीचे देखो !!!प्रोग्रामिंग चुनौती: इस ग्रिड को कोड करने का सबसे आसान तरीका?

दुनिया के स्मार्ट लोग ...

मैं इस ग्रिड प्रोसेसिंग (जावा) का उपयोग कर आकर्षित करने के लिए कोशिश कर रहा हूँ, लेकिन मैं मुसीबत यह चारों ओर होशियार रास्ता पता लगाना हो रही है। मैं मूल रूप से दोहराने वाले खंड में प्रत्येक बिंदु को साजिश कर सकता हूं, लेकिन मुझे यकीन है कि इसके चारों ओर एक बेहतर तरीका है।

grid

किसी भी एल्गोरिथ्म और भाषा करेंगे। मुझे बस अवधारणा को देखने की जरूरत है।

संपादित

लोगो की छवि के साथ अपडेट किया। यह मूल रूप से दिखाता है कि कैसे मैं करने के लिए "पता" क्या क्षेत्रों पड़ोसी हैं, आदेश ग्रिड से एक उत्पादक आकार बनाने के लिए में क्षमता की जरूरत है:

logo

संपादित 2

ग्रिड एक कहा जाता है डिजाइनर द्वारा "अर्ध आवधिक आठ गुना ग्रिड"।

संपादित 3

ठीक है, कि कठिन से मैंने सोचा था। मैंने बहुत प्रगति की है, और आप यहां कोड ढूंढ सकते हैं: https://gist.github.com/3682600

मेरे पास उप-विभाजन दोनों आकारों के लिए सही काम कर रहा है, हालांकि, जब मैं रिकर्सन शुरू करता हूं, तो कुछ अजीब चल रहा है। यह मेरी उत्पादन अभी है:

test

किसी भी मदद की सराहना की है!

संपादित 4

ठीक है, यह एक महाकाव्य कार्य में तब्दील हो जाता है। मुझे पता चला है कि जब समस्या बहुत गहरी हो जाती है तो समस्या उत्पन्न होती है। या तो यह तत्वों के घूर्णन के साथ एक समस्या है, या यह एक और चीज है जिसे मैं समझ नहीं सकता।

working

मैं इसे बनाया संपादित 5

: वैसे भी, यहाँ काम कर रहे स्केच मेरे पास अभी है! मैंने cubes के घूर्णन गड़बड़ कर दिया था, जो इसे सब गड़बड़ कर दिया। मैंने इसे बदल दिया और यह काम कर रहा है: https://gist.github.com/3682600। वहां थोड़ी सी चीजें हो सकती हैं, लेकिन यह पूरी तरह से काम कर रही है। सबूत:

leve1 level2 level3

+1

और इस ग्रिड का विशेष नाम क्या है? यह कैसे परिभाषित किया जाता है - इसकी विशेषताएं क्या हैं? – orlp

+0

जावा के लिए प्रसंस्करण नहीं कर रहा है, जावा नहीं? – Blender

+0

@nightcracker: यह प्रश्न का उत्तर होगा :) – valdo

उत्तर

3

यदि यह वास्तव में Ammann-Beenker tiling @ n.m है। his comment में उल्लिखित, तो आप प्रदत्त प्रतिस्थापन नियमों का उपयोग करके इसे आसानी से कोड करेंगे। एक मनमानी टाइल के साथ शुरू करें, और इसे छोटे टाइल्स के साथ प्रतिस्थापित करें जब तक कि आपके उद्देश्य के लिए पर्याप्त संख्या में टाइल्स न हों। ध्यान दें कि प्रतिस्थापन नियम स्पष्ट रूप से उन्मुख आधे वर्गों से निपटते हैं।

+0

मुझे इन प्रतिस्थापन नियमों को पढ़ने में परेशानी हो रही है। मैं जो आकार बदल रहा हूं वह वास्तव में क्या है? इस बारे में साहित्य खोजने में परेशानी हो रही है। – Ronze

+0

@ रोनज: आप * किसी भी * टाइल, या टाइल्स के संयोजन से शुरू करते हैं। यदि आप 8 गुना समरूपता चाहते हैं, तो आप एक बिंदु के चारों ओर व्यवस्थित 8 अंगों से शुरू कर सकते हैं। यदि आप इसे सरल बनाना चाहते हैं, तो केवल एक लें। फिर आप नियमों के अनुसार प्रत्येक टाइल को उप-विभाजित करते हैं। आपको [पेनरोस टिलिंग्स] (https://en.wikipedia.org/wiki/Penrose_tiling) के बारे में बहुत सारे साहित्य मिलेंगे, मुझे यकीन है। उनको प्रतिस्थापन का उपयोग करके भी बनाया जा सकता है, इसलिए अवधारणा काफी समान है। – MvG

+0

आह, यह समझ में आता है! बहुत बढ़िया। मैं यहां कुछ घंटों में परिणाम पोस्ट करूंगा। – Ronze

4

मुझे यकीन है कि एक आसान तरीका नहीं होगा नहीं कर रहा हूँ, मैं एक पुनरावृत्त भाग की तलाश शुरू कर लेकिन यह अर्ध आवधिक, या लगभग दोहराई जाने वाली है।

enter image description here

यह हरी पंक्तियों में स्पष्ट रूप से symetric है, लेकिन पैटर्न नीले रंग में चिह्नित वास्तव में ग्रिड आगे केंद्र से दूर बढ़ाया कैसे दिखाई देते हैं के पैटर्न को दिखाने के लिए नहीं है। मुझसे गलती भी हो सकती है।

संबंधित मुद्दे