मुझे लगता है कि अगर हम सिर्फ इसके बारे में सोचते हैं तो हम इसे पहेली बना सकते हैं।
आप स्पष्ट रूप से उन चेहरों (त्रिकोण) को बनाना चाहेंगे जहां दो ज्यामितीय प्रतिच्छेद करते हैं। फिर आपको तीन जालों के साथ छोड़ दिया जाता है: जिस चौराहे को आपने अलग किया है, ज्यामिति 1, और ज्यामिति 2।
फिर, बस वह हटाएं जिसकी आपको आवश्यकता नहीं है!
- बूलियन डिफरेंस: पृथक भाग और ज्यामिति 2 को हटाएं।
- बूलियन इंट्रैक्शन: पृथक भाग को छोड़कर, ज्यामिति 1 और 2 को हटाएं
- बूलियनउनियन: ज्यामितीय 1 और 2 को मर्ज करें और अलग-थलग भाग को हटा दें (सुनिश्चित करें कि ज्यामितीय 1 और 2 को एक साथ एक ठोस ज्यामिति में सिलाई करें)
- बूलियनस्प्लिट: अलग ज्यामिति 1, ज्यामिति 2, और पृथक भाग की नकल करें (एक को ज्यामिति 1 से और दूसरे को ज्यामिति 2 से संलग्न करें)
मुझे लगता है कि यह कवर, एह? कठिन हिस्सा स्पष्ट रूप से प्रतिच्छेदन चेहरे का निर्माण करेगा। उसके लिए, एक के प्रत्येक चेहरे के माध्यम से पुनरावृति करें और जांचें कि क्या वह चेहरा दूसरे का हिस्सा है; यदि यह पूरी तरह से अंदर है, तो चेहरे को प्रतिच्छेदन जाल के हिस्से के रूप में कॉपी करें। यदि यह आंशिक रूप से अंदर है, तो आपको त्रिकोण को चौराहे की रेखा के साथ विभाजित करने की आवश्यकता है; मुझे लगता है कि DirectX और OpenGL दोनों में इसके लिए सहायक कार्य होंगे, या यह केवल कुछ 3D विमान गणित (वैक्टर) हैं। मैंने कैलकुलस 3 में उस तरह की चीज़ सीखी (या यह 2 थी?) लेकिन अगर आपके पास कोई सुराग नहीं है, तो शायद math.stackexchange.com पर पूछें । और फिर निश्चित रूप से अगर चेहरा बाहर है, तो कुछ भी न करें। एक बार जब आप दोनों मेषों के सभी चेहरों पर पुनरावृत्त हो जाते हैं तो आपको चौराहे के जाल के साथ छोड़ दिया जाएगा।