मैं दो पुस्तकालयों (ओपनकास्केड और डीडब्ल्यूएफ टूलकिट) के शीर्ष पर एक सीएडी फ़ाइल कनवर्टर बना रहा हूं।'त्रिभुज-सूप' से अद्वितीय शिखर खोजें
को देखते हुए:
मैं त्रिकोणीय चेहरे की एक सूची के रूप में एक जाल जेनरेट किया है एक मॉडल अपने आवेदन के माध्यम से निर्माण के लिए फार्म
हालांकि, मेरे सवाल का plattform नास्तिक है। प्रत्येक त्रिभुज को तीन चरमों के माध्यम से परिभाषित किया जाता है, जिसमें तीन फ्लोट (x, y & z समन्वय) शामिल होते हैं। चूंकि त्रिकोण एक जाल बनाते हैं, इसलिए अधिकांश कोष्ठक एक त्रिकोण से अधिक साझा किए जाते हैं।
लक्ष्य:
मैं अद्वितीय कोने की सूची प्राप्त करने के लिए, और इस सूची में तीन सूचकांकों की tuples से मिलकर चेहरे की एक सरणी उत्पन्न करने के लिए की जरूरत है।
//step 1: build a list of unique vertices
for each triangle
for each vertex in triangle
if not vertex in listOfVertices
Add vertex to listOfVertices
//step 2: build a list of faces
for each triangle
for each vertex in triangle
Get Vertex Index From listOfvertices
AddToMap(vertex Index, triangle)
जब मैं एक कार्यान्वयन जो इस, चरण 1 (अद्वितीय कोने की सूची की पीढ़ी) करता है वास्तव में हे के क्रम में धीमी है (एन:
यह क्या मैं करना चाहता हूँ है !), चूंकि प्रत्येक चरम सूची की सूची में पहले से मौजूद सभी शीर्षकों से तुलना की जाती है। मैंने सोचा "अरे, std :: मैप का उपयोग करके मेरे शिखर के घटकों के एक हैशप को बनाने दें, जो चीजों को गति देना चाहिए!", केवल यह पता लगाने के लिए कि तीन फ़्लोटिंग पॉइंट मानों से एक अनूठी कुंजी उत्पन्न करना एक छोटा काम नहीं है।
यहां, स्टैक ओवरफ्लो के विशेषज्ञ खेल में आते हैं: मुझे किसी प्रकार का हैश-फ़ंक्शन चाहिए जो 3 फ्लोट्स पर काम करता है, या कोई अन्य फ़ंक्शन 3 डी-वर्टेक्स स्थिति से अद्वितीय मूल्य उत्पन्न करता है।
इस कशेरुक विशिष्टता को कितना मजबूत होना चाहिए? मेरा मतलब है, क्या आप बस अंतरिक्ष को बचाने की कोशिश कर रहे हैं, या आपको बहुत मजबूत टोपोलॉजी की आवश्यकता है। मान लीजिए वर्टेक्स वीए और वीबी अलग-अलग आईडी पीएन और पीक प्राप्त करते हैं लेकिन वास्तव में वास्तव में 'वही' हैं, क्या यह एक सौदा ब्रेकर है? – Tarydon
हां, ऐसा इसलिए होगा क्योंकि मैं टोपोलॉजी के मेष निर्यात करने की कोशिश कर रहा हूं। यदि स्रोत में स्रोत से एक ही वर्टेक्स कई बार मौजूद होगा, तो इसके द्वारा बनाए गए त्रिकोण किनारे को साझा नहीं करेंगे - टोपोलॉजी खुली हो सकती है। – sum1stolemyname