के अंदर पूर्णांक निर्देशांक के साथ सभी बिंदु खोजें I tetrahedron (मैं किसी भी तरह से उनके माध्यम से लूप करने में सक्षम होना चाहता हूं) के अंदर पूर्णांक समन्वय वाले सभी बिंदुओं को खोजने का प्रयास कर रहा हूं। मैं चार बिंदुओं (ए, बी, सी, डी) के निर्देशांक जानता हूं जो टेट्राहेड्रॉन को परिभाषित करते हैं।टेट्राहेड्रॉन
मैं वर्तमान में जो कर रहा हूं वह मुझे टेट्राहेड्रॉन का बाध्यकारी बॉक्स (ए, बी, सी, डी के न्यूनतम और अधिकतम एक्स, वाई, जेड निर्देशांक) और फिर अंदर के सभी बिंदुओं के माध्यम से एक लूप करें बंद डब्बा। इस तरह के प्रत्येक बिंदु के लिए, मैं बैरीसेंट्रिक निर्देशांक (the equations from Wikipedia का उपयोग करके) की गणना करता हूं और जांच करता हूं कि बिंदु टेट्राहेड्रॉन के अंदर है (यदि बैरिएंट्रिक निर्देशांक में से कोई नकारात्मक या 1 से बड़ा है, तो बिंदु अंदर नहीं है)।
क्या ऐसा करने का कोई बेहतर तरीका है? वर्तमान में लगभग 1/6 मौका है कि जिस बिंदु पर मैं परीक्षण कर रहा हूं (बाउंडिंग बॉक्स से) वास्तव में टेट्राहेड्रॉन के अंदर स्थित है, इसलिए मुझे लगता है कि मैं बहुत अधिक अनावश्यक गणना कर रहा हूं।
मैं टेट्राहेड्रा की एक सूची के साथ काम कर रहा हूं जिसे मैंने बड़ी मात्रा में त्रिभुज करके उत्पन्न किया है (मैं वॉल्यूम का विस्तार कर रहा हूं और टेट्राहेड्रल इंटरपोलेशन का उपयोग करके लापता मूल्यों को अलग करना चाहता हूं)। मैं किसी बाहरी पुस्तकालय का उपयोग नहीं कर रहा हूं।
आप विमान समीकरणों को भी स्केल कर सकते हैं ताकि $ F $ का मूल्य विमान पर शून्य हो और 1 विपरीत वर्टेक्स पर हो। इस तरह सभी वैध बिंदुओं में $ 0 <= एफ (x, y, z) <= 1 $ है - जिसका अर्थ है कि आप प्रत्येक विमान के लिए अधिक अंक छोड़ना चाहते हैं। –