2009-06-08 42 views
14

में विघटित करना मान लीजिए कि आपके पास 3 आयामी ऑब्जेक्ट है, जो कि कुछ सामान्य फ़ाइल प्रारूप में 3 डी जाल के रूप में दर्शाया गया है। जाल को एक या दो से अधिक 2 डी 'नेट' में विघटित करने के लिए आप एल्गोरिदम कैसे तैयार करेंगे - यानी, एक 2-आयामी प्रतिनिधित्व जिसे मूल 3 डी ऑब्जेक्ट बनाने के लिए काटा जा सकता है और फोल्ड किया जा सकता है। किसी भी वस्तु 2 डी जाल को 2 डी नेट

  • हैंडलिंग तय आकार कैनवस (कागज की चादरों) में एक जाल फिटिंग के लिए

    • एकाधिक संभव decompositions:

      अन्य बातों के बीच, एल्गोरिथ्म के लिए खाते की आवश्यकता होगी।

    • पहचानते हुए कि नेट में दो पैनल ओवरलैप होंगे (और इस प्रकार अमान्य हैं)।
    • ओवरलैप या पृष्ठ आकार की बाधाओं के कारण, यदि उन्हें एकल के रूप में प्रदर्शित नहीं किया जा सकता है तो कई जाल में जाल को तोड़ना।
    • आसन्न चेहरों को जोड़ने के लिए उपयुक्त स्थानों में टैब उत्पन्न करना।

    स्पष्ट अपमानजनक मामला केवल आधे किनारों पर टैब के साथ एक प्रति प्रति चेहरा बनाने के लिए है। यह आदर्श नहीं है, जाहिर है: आदर्श मामला एक निरंतर नेट है। जटिल आकार के लिए वास्तविकता मध्य में कहीं भी होने की संभावना है।

    मुझे एहसास है कि इष्टतम नेट (सबसे कम नेट/कम से कम पेज) ढूंढना शायद कम्प्यूटेशनल रूप से महंगा है, लेकिन 'पर्याप्त पर्याप्त' नेट खोजने के लिए एक अच्छा ह्युरिस्टिक पर्याप्त होगा।

  • +0

    हाय! सुपर दिलचस्प विषय। कुछ वर्षों के बाद इस पर कोई अग्रिम? – nkint

    +0

    मैंने अभी इस सवाल पर ठोकर खाई है, वास्तव में सॉफ्टवेयर का एक टुकड़ा है जो आप जो कह रहे हैं वह ठीक करता है। कैसे, मुझे कोई जानकारी नहीं है। लेकिन यह वास्तव में एक अद्भुत उपकरण है! http://www.tamasoft.co.jp/pepakura-en/ –

    उत्तर

    10

    जब मैंने आपका प्रश्न पढ़ा, तो शब्द "स्वचालित पेपरक्राफ्ट एल्गोरिदम" मेरे पास आया। तो मैंने इसे गोगल किया और मस्सारवी एट अल द्वारा Papercraft Models using Generalized Cylinders (पीडीएफ) पाया।

    हम पट्टी आधारित सन्निकटन के माध्यम से triangulated meshes से गोल खिलौना पशु आंकड़े के सामने आया papercraft पैटर्न उत्पादन के लिए एक नई विधि का प्रस्ताव। सिद्धांत रूप में एक triangulated मॉडल बनाए रखने के रूप में ज्यादा अपने संपर्क के रूप में संभव है, जबकि में त्रिकोण अन्तर्विभाजक सामने आया विमान के लिए जाँच, त्रिकोण की हजारों के साथ एक पद्धति बनाकर बस सामने आया हो सकता है अवास्तविक है। हमारा दृष्टिकोण निरंतर त्रिभुज स्ट्रिप्स के सेट द्वारा आंतरिक शिखर के साथ जाल मॉडल का अनुमान लगाया गया है। प्रारंभ में, हम भागों में हमारे जाल को मॉडल की विशेषताओं के अनुरूप विभाजित करते हैं। हम प्रत्येक भाग को ज़ोनल क्षेत्रों में विभाजित करते हैं, जो त्रिकोणों को समूहित करते हैं जो भाग सीमा से समान स्थलीय दूरी हैं। हम ज़ोनल क्षेत्रों और अतिरिक्त कट-लाइनों की सीमाओं को बनाए रखते हुए जाल को सरल बनाकर त्रिभुज पट्टियां उत्पन्न करते हैं। पैटर्न तब स्ट्रिप्स के सेट को प्रकट करने के लिए द्वारा बनाया गया है। हमारी विधि की विशिष्ट विशेषता यह है कि हम द्वारा शंकु या सिलेंडरों के हिस्सों जैसे अन्य शासित सतहों द्वारा जारी किए गए जाल मॉडल का अनुमान लगाते हैं। इस प्रकार, अनुमानित खुला पैटर्न केवल जाल संचालन और एक सरल प्रवर्तन एल्गोरिदम का उपयोग करके उत्पन्न किया जा सकता है। इसके अलावा, स्ट्रिप्स का एक सेट पेपर (किनारों को तोड़ने के बिना) को झुकाकर तैयार किया जा सकता है और मूल जाल मॉडल की चिकनी विशेषताओं का प्रतिनिधित्व कर सकता है।

    शेट्स एट अल द्वारा Paper craft models from meshes (9 एमबी पीडीएफ) नामक पहले संबंधित पेपर भी है।

    इस पत्र developable अनुमानों में एक जाल के आधार पर विभाजित के लिए एक एल्गोरिथ्म प्रस्तुत करता है। एल्गोरिदम सीएडी और कंप्यूटर ग्राफिक्स में विभिन्न अनुप्रयोगों में उपयोग किया जा सकता है। यह पेपर पेपर क्राफ्टिंग पर केंद्रित है और दर्शाता है कि एल्गोरिदम अनुमानित उत्पन्न करता है जो विकसित करने योग्य, कटौती करने में आसान है, और एक साथ चिपके हुए हो सकते हैं। यह भी दिखाया गया है कि दिए गए मॉडल और के बीच त्रुटि पेपर मॉडल छोटा है।

    enter image description here
    स्रोत: http://www.ee.technion.ac.il/~ayellet/images/sel-papers-pic-5.jpg

    +0

    बहुत बढ़िया! धन्यवाद। –

    +0

    मुझे अपने मैश के शुद्ध बनावट स्थान को एटलस में खोलने के लिए इसकी आवश्यकता थी। आप एक lifesaver हैं। –

    10

    एल्गोरिदम अच्छा उचित papercraft उत्पन्न होगा से जुड़ा हुआ eed3si9n जटिल ज्यामिति से meshes। यदि आप जाली को ठीक तरह से मॉडल करना चाहते हैं, जैसे कि पॉलीहेड्रा मॉडल के लिए, तो यहां किसी भी जाल को प्रकट करने के लिए अपेक्षाकृत सरल तकनीक है क्योंकि यह

    आपके स्रोत जाल से एक ग्राफ का निर्माण करें जहां प्रत्येक चेहरा एक है ग्राफ में vertex, और वे दो जाल जुड़े हैं अगर वे जाल में एक आम धार साझा करते हैं। इन ग्राफों में से एक एक unfoldable जाल का प्रतिनिधित्व करता है अगर और केवल अगर इसमें कोई लूप नहीं है, यानी यह एक पेड़ है।

    एक अच्छा पेड़ शुरुआती बिंदु से सबसे दूर के चेहरे तक पहुंचने के लिए सबसे छोटी गुना रेखाओं का प्रतिनिधित्व करता है, क्योंकि प्रत्येक गुना त्रुटि का प्रतिनिधित्व करता है जो तैयार मॉडल में जमा होगा। डिजस्ट्रा का एल्गोरिदम यहां अच्छा है, लेकिन न्यूनतम स्पैनिंग पेड़ काम नहीं करता है। प्रत्येक किनारे के बराबर भारित सभी पेड़ पेड़ों को फैलाते हैं, यहां तक ​​कि वह भी जो आपके जाल को एक बड़े सर्पिल में प्रकट करेगा। जैसे-जैसे आप मॉडल को एक साथ चिपकाते हैं, तब तक त्रुटियां तब तक बढ़ जाएंगी जब तक कि पिछले कुछ चेहरे बिल्कुल फिट न हों।

    एक बार जब आप पेड़ लें, तो मूल पर अपना प्रारंभिक चेहरा खींचना शुरू करें। फिर पेड़ पर चलें और नए चेहरे की गणना करके नए चेहरे को मूल जाल में किनारों की लंबाई के अनुरूप त्रिज्या के साथ दो सर्किलों के चौराहे के रूप में जोड़कर जोड़ें। टैब के लिए स्थान किनारों से मेल खाते हैं जो मूल जाल में थे, लेकिन चतुर पेड़ में नहीं हैं।

    उपयोगकर्ता द्वारा निर्दिष्ट कटौती पेड़ चरण से पहले किनारे हटाने के रूप में संभाला जा सकता है।

    diagram of unfolding a tetrahedron

    इस तकनीक से कुछ कमियां है कि यह खुशी से फ्लैट पैटर्न में भागों ओवरलैपिंग बनाएगा हैं, और यह एक अच्छा प्रारंभिक चेहरे की खोज पर निर्भर है। मैंने फ्लोयड-वारशल को शुरू करने के लिए न्यूनतम-व्यास का चेहरा खोजने की कोशिश की, लेकिन इसके ओ (एन^3) व्यवहार अत्यधिक लंबे कॉफी ब्रेक के लिए बने। ओवरलैपिंग भागों को पेड़ की उस शाखा को "अपूर्ण" के रूप में चिह्नित करके, इसे छोड़कर, और फिर से अपूर्ण चेहरों पर एल्गोरिदम को फिर से चलाने के साथ निपटाया जा सकता है।

    +0

    अच्छा जवाब, धन्यवाद! यह आपके उत्तर से स्पष्ट नहीं है कि आप चाहते हैं कि किनारों को तब तक हटा दिया जाए जब तक कि ग्राफ एक पेड़ न हो, लेकिन ऐसा प्रतीत होता है। मुझे लगता है कि एक न्यूनतम-स्पैनिंग-पेड़ एल्गोरिदम उपयुक्त है। इसके अलावा, आपके उत्तर का तात्पर्य है कि आपने इसे पहले लिखा है - निजी परियोजना, या यह कहीं उपलब्ध है? :) –

    +0

    असल में, न्यूनतम स्पैनिंग पेड़ काम नहीं करता है क्योंकि यह केंद्र से गुना की संख्या को कम नहीं करता है। मैंने इसे स्पष्ट करने के लिए अपना उत्तर अपडेट कर दिया है। जहां तक ​​जाल से किनारों को हटाया जाता है, यह एल्गोरिदम मूल जाल को संशोधित नहीं करता है। मुझे किनारों को विभाजित करते समय सभी सही आविष्कारों को बनाए रखने के बजाय केवल खरोंच से जाली जाल उत्पन्न करना आसान लगता है। आखिरकार, मैंने इसे रिलीज़ करने के इरादे से ब्लेंडर प्लग-इन के रूप में पहले लिखा है, लेकिन टैब भाग को समाप्त करने से पहले विचलित हो गया है। मैं इसे अपने पुराने एचडी से पकड़ूंगा और इसे पोस्ट करूंगा। – Theran

    +0

    ठीक है, मैंने अंततः इसे बाहर खींच लिया और इसे http://code.google.com/p/unfolder/ – Theran

    0

    मुझे पता है कि यह कोई जवाब नहीं है, लेकिन यह संबंधित है। पूर्व-एसजीआई ग्राफिक्स लड़का पॉल हैबरली का Lamina प्रोग्राम इस समस्या का समाधान है।

    +1

    वाह। साफ कार्यक्रम, लेकिन $ 353 पेपरक्राफ्ट में उपयोग के लिए थोड़ा सा है। ;) –