जब मुझे त्वचा की छाया के लिए जालीदार वक्रता के अनुमान की आवश्यकता होती है, तो जिस एल्गोरिथ्म को मैंने समाप्त कर दिया, वह इस प्रकार था:
सबसे पहले, मैंने मेष में प्रत्येक किनारे के लिए एक स्केलर वक्रता की गणना की। यदि किनारे में और मानदंड एन 1 , एन 2 हैं , तो मैंने इसकी वक्रता का अनुमान लगाया है:p1,p2n1,n2
curvature=(n2−n1)⋅(p2−p1)|p2−p1|2
यह मानदंड में अंतर की गणना करता है, किनारे की लंबाई के एक अंश के रूप में, किनारे के साथ अनुमानित है। (इस सूत्र के साथ मैं कैसे आया, इसके लिए नीचे देखें।)
फिर, प्रत्येक शीर्ष के लिए मैंने इसे छूने वाले सभी किनारों की वक्रता को देखा। मेरे मामले में, मुझे बस "औसत वक्रता" का एक स्केलर अनुमान चाहिए था, इसलिए मैंने प्रत्येक शीर्ष पर सभी किनारे वक्रता के पूर्ण मूल्यों के ज्यामितीय माध्य को लेना समाप्त कर दिया। आपके मामले के लिए, आपको न्यूनतम और अधिकतम वक्रताएं मिल सकती हैं, और उन किनारों को प्रमुख वक्रता दिशाओं के रूप में ले सकते हैं (हो सकता है कि वे वर्टीकल सामान्य के साथ orthonormalizing)। यह थोड़ा कठिन है, लेकिन यह आपको एक अच्छा पर्याप्त परिणाम दे सकता है कि आप क्या करना चाहते हैं।
इस सूत्र के लिए प्रेरणा यह देख रही है कि एक सर्कल में लागू होने पर 2D में क्या होता है:
r1/rn1,n2p1=rn1p2=rn2 होने वाली है, इस संपत्ति के कारण कि एक वृत्त या क्षेत्र के मानदंड हमेशा अपने केंद्र से सीधे इंगित करते हैं।
r=|p1|/|n1||p2|/|n2|
p2−p1rcurvature=1r=rn2−rn1=r(n2−n1)=|p2−p1||n2−n1|=|n2−n1||p2−p1|
n2−n1p2−p1
curvature=(n2−n1)⋅normalize(p2−p1)|p2−p1|=(n2−n1)⋅(p2−p1)/|p2−p1||p2−p1|=(n2−n1)⋅(p2−p1)|p2−p1|2
Et voilà, इस उत्तर के शीर्ष पर दिखाई देने वाला सूत्र है। वैसे, हस्ताक्षरित प्रक्षेपण (डॉट उत्पाद) का उपयोग करने का एक अच्छा पक्ष लाभ यह है कि सूत्र तब एक हस्ताक्षरित वक्रता देता है: उत्तल सतहों के लिए सकारात्मक, और अवतल सतहों के लिए नकारात्मक।
एक और दृष्टिकोण जिसका मैं उपयोग करने की कल्पना कर सकता हूं, लेकिन कोशिश नहीं की है, दूसरे मूलभूत रूप का अनुमान लगाना होगा प्रत्येक शीर्ष पर सतह का । यह शीर्ष पर एक स्पर्शरेखा के आधार को स्थापित करके किया जा सकता है, फिर सभी पड़ोसी कोने को उस स्पर्शरेखा स्थान में परिवर्तित किया जा सकता है, और सबसे उपयुक्त 2FF मैट्रिक्स को खोजने के लिए कम से कम वर्गों का उपयोग किया जा सकता है। तब मूल वक्रता दिशाएं उस मैट्रिक्स के आइजनवेक्टर होंगी। यह दिलचस्प लगता है क्योंकि यह आपको उन दिशाओं में स्पष्ट रूप से इंगित किए बिना पड़ोसी कोने द्वारा वक्रता दिशाओं "गर्भित" मिल सकता है, लेकिन दूसरी तरफ बहुत अधिक कोड, अधिक संगणना, और शायद कम संख्यात्मक रूप से मजबूत है।
एक पेपर जो इस दृष्टिकोण को ले जाता है , वह है रस्किन्कविक्ज़, "ट्राइएंगल मेश पर कर्वर्स और उनके डेरिवेटिव्स का अनुमान लगाना" । यह त्रिभुज प्रति सबसे अच्छा-फिट 2FF मैट्रिक्स का अनुमान लगाकर काम करता है, फिर मैट्रिसेस प्रति-वर्टेक्स के समान औसत (कैसे चिकनी मानदंडों की गणना की जाती है)।