वर्तमान में मैं एक सॉफ्टवेयर कंपनी में इंटर्न कर रहा हूं और मेरे कार्यों में से एक माउस जेस्चर की पहचान को लागू करने के लिए किया गया है। वरिष्ठ डेवलपर्स में से एक ने मुझे शुरू करने में मदद की और कोड/परियोजनाएं प्रदान की जो $ 1 यूनिस्ट्रोक रिकॉग्नाइज़र http://depts.washington.edu/aimgroup/proj/dollar/ का उपयोग करती हैं। मुझे विस्तृत तरीके से मिलता है, $ 1 यूनिस्ट्रोक रिकॉग्नाइज़र क्या कर रहा है और यह कैसे काम करता है लेकिन इसके सभी आंतरिक/बेहतर विवरणों को समझने की कोशिश करने के साथ थोड़ा सा अभिभूत हूं।माउस जेस्चर से उत्पन्न अंकों की सूची से सभी लाइन सेगमेंट कैसे निर्धारित करें?
मेरी समस्या यह है कि मैं माउस डाउनवर्ड को ऊपर ले जाने के संकेत को पहचानने की कोशिश कर रहा हूं, फिर ऊपर। $ 1 यूनिस्ट्रोक रिकॉग्नाइज़र यह निर्धारित करता है कि मैंने जो इशारा किया है वह नीचे की इशारा था, जो वास्तव में यह करना चाहिए कि उसे क्या करना चाहिए। मैं वास्तव में ऐसा करना चाहता हूं कि "मैं एक डाउनर्ड इशारा पहचानता हूं और फिर ऊपर की ओर इशारा करता हूं।"
मुझे नहीं पता कि $ 1 यूनिस्ट्रोक रिकॉग्नाइज़र की समझ की कमी पूरी तरह से मुझे अपने सिर को खरोंच कर रही है, लेकिन क्या किसी के पास कोई विचार है कि माउस को नीचे की ओर आगे बढ़ने से दो अलग-अलग संकेतों को कैसे पहचानें?
यहां मेरा विचार है कि मैंने सोचा कि मेरी मदद कर सकती है लेकिन किसी ऐसे व्यक्ति के लिए प्यार करेगी जो एक विशेषज्ञ है या मुझे यह जानने के लिए कि आप क्या सोचते हैं, उससे थोड़ा और मुझे पता है। आपको पता है कि कोई भी सहायता या संसाधन बहुत सराहना की जाएगी।
कैसे मेरे आवेदन वर्तमान में कार्य करता है:
तरीका है कि मेरे वर्तमान आवेदन काम करता है कि मैं जहां माउस कर्सर है, जबकि उपयोगकर्ता बाईं माउस बटन नीचे धारण से अंक पर कब्जा है। बिंदुओं की एक सूची को इशारा पहचानकर्ता को फ़ीड मिल जाता है और फिर यह कैप्चर किए गए बिंदुओं के लिए कोरसपॉन्ड का सबसे अच्छा आकार/इशारा होने के बारे में सोचता है।
मेरे विचार:
मुझे क्या करना चाहता था इससे पहले कि मैं इशारा पहचानकर्ता को अंक फ़ीड किसी भी तरह सभी बिंदुओं के माध्यम से जाने के लिए और उन्हें अलग-अलग पंक्तियों या घटता में टूट रहा है। इस तरह से मैं एक समय में और नीचे, ऊपर, बाएं, दाएं, विकर्ण, और घटता के मूल आंदोलनों से प्रत्येक पंक्ति/वक्र को खिला सकता हूं, मैं अंतिम आकार/इशारा निर्धारित कर सकता हूं।
एक तरीका मैंने सोचा कि यह निर्धारित करने में अच्छा होगा कि अंक की मेरी सूची में अलग-अलग रेखाएं हैं, जो अंक के समूह का नमूनाकरण कर रही हैं और उनकी ढलान को देख रही हैं। यदि अंकों के नमूने वाले समूह की ढलान नमूना बिंदुओं के किसी अन्य समूह से X% भिन्न होती है तो यह मानना सुरक्षित होगा कि वास्तव में एक अलग पंक्ति मौजूद है।
मैं क्या सोचता संभावित समस्याओं मेरी सोच में हैं:
मैं एक पंक्ति के अंत और एक अलग लाइन की शुरुआत कहाँ तय करते हैं? अगर मैं बिंदुओं के समूह की ढलान की जांच करने के विचार का उपयोग करना चाहता था और फिर यह निर्धारित किया कि एक अलग रेखा मौजूद है जिसका मतलब यह नहीं है कि मुझे निस्संदेह एक अलग रेखा की ढलान मिली है। उदाहरण के लिए यदि आप दाएं कोण के साथ सीधे किनारे वाले "एल" को आकर्षित करना चाहते हैं और "एल" के कोने के चारों ओर बिंदुओं की ढलान का नमूना देते हैं तो आप देखेंगे कि ढलान गूंजने वाला संकेत देगा कि एक अलग रेखा मौजूद है लेकिन वे बिंदु एक अलग रेखा की शुरुआत के अनुरूप नहीं हैं।
घुमावदार रेखा की कभी-कभी बदलती ढलान से कैसे निपटें? इशारा पहचानकर्ता जिसे मैं पहले से ही वैसे ही हैंडल वक्र का उपयोग करता हूं।लेकिन मैं नहीं चाहता कि मैं अपनी विधि को अलग-अलग लाइनों को निर्धारित करने के लिए उपयोग करता हूं ताकि वे वक्र में इन तथाकथित अलग-अलग लाइनों को देख सकें क्योंकि जब मैं अंक के समूह का नमूना देता हूं तो इसकी ढलान हर समय बदलती जा रही है। एक बार ढलान X% से अधिक बार पंक्ति में बदल जाने के बाद क्या मैं नमूना अंक बंद कर दूंगा?
मैं अलग लाइनों को निर्धारित करने के लिए गणित के सही "प्रकार" का उपयोग नहीं कर रहा हूं। गणित मेरा सबसे मजबूत विषय नहीं है लेकिन मैंने कुछ शोध किया है। मैंने डॉट उत्पादों को देखने की कोशिश की और देखा कि क्या मुझे कुछ दिशा में इंगित किया जाएगा, लेकिन मुझे नहीं पता कि यह क्या होगा। क्या किसी ने इस तरह या कुछ अन्य विधि करने के लिए डॉट प्रोडक्ट्स का उपयोग किया है?
अंतिम विचार, टिप्पणियां, और धन्यवाद:
मेरी समस्या का एक हिस्सा मुझे पसंद लग रहा है मैं नहीं जानता कि कैसे compeletly मेरे सवाल पूछने के लिए है। मुझे आश्चर्य नहीं होगा अगर इस समस्या को पहले से ही पूछा जा चुका है (एक तरफ या किसी अन्य तरीके से) और एक समाधान मौजूद है जिसे गुगल किया जा सकता है। लेकिन Google पर मेरे खोज परिणामों ने कोई समाधान नहीं दिया क्योंकि मुझे अभी पता नहीं है कि अभी तक मेरे प्रश्न से कैसे पूछना है। अगर आपको लगता है कि यह भ्रमित है तो कृपया मुझे बताएं कि कहां और क्यों और मैं इसे स्पष्ट करने में मदद करूंगा। ऐसा करने में शायद Google पर मेरी खोज अधिक सटीक हो जाएगी और मैं समाधान ढूंढ पाऊंगा।
मैं बस अपनी पोस्ट पढ़ने के लिए धन्यवाद कहना चाहता हूं। मुझे इसकी लंबी जानकारी है लेकिन वास्तव में यह नहीं पता था कि यह कहां से पूछना है। इमामा कार्यालय के आस-पास के कुछ अन्य लोगों के साथ बात करती है लेकिन पूरे स्कूल में मैंने अपने सभी बेहतरीन समाधानों का उपयोग स्टैक ओवरफ्लो समुदाय से किया है, इसलिए मुझे आपके लिए बहुत धन्यवाद देना है। इस पोस्ट के लिए
संपादन:
(7/6 4:00 PM) एक और विचार के बारे में मैं एक न्यूनतम/अधिकतम बिंदु से पहले सभी बिंदुओं की तुलना की गई थी सोचा। उदाहरण के लिए, यदि मैंने माउस डाउनवर्ड को ऊपर की तरफ ले जाया है, तो मेरा शुरुआती बिंदु वर्तमान मैक्स पॉइंट होगा जबकि उस बिंदु पर जहां मैं माउस को ऊपर की तरफ ले जाना शुरू करूँगा, मेरा न्यूनतम बिंदु होगा। मैं आगे बढ़ सकता था और देख सकता था कि न्यूनतम बिंदु के बाद कोई बिंदु है या नहीं और यदि ऐसा कहें कि एक नई संभावित रेखा हो सकती है। मुझे पता नहीं है कि यह सितारों जैसे अन्य आकारों पर कितना अच्छा काम करेगा लेकिन यह एक और चीज है जिसे मैं देखने जा रहा हूं। क्या किसी ने इससे पहले ऐसा कुछ किया है?
क्या आप संतुष्ट होंगे यदि आपके रिकॉग्नाइज़र ने इसे "जेन-यूपी" के एक इशारे के रूप में पहचाना है, या क्या आप वाकई इशारा को दो आदिम संकेतों, {डाउन, यूपी} के अनुक्रम में तोड़ना चाहते हैं? – Beta
यदि मैं सही ढंग से समझ गया तो आपके पास पहले से ही लाइनों की एक सेरी है, जिसे प्रत्येक बिंदु जोड़ी द्वारा परिभाषित किया गया है, लेकिन सरलीकरण चाहता है - बस "इच्छित" रेखाएं। मेरा सुझाव है कि आप डगलस-पेकर लाइन सरलीकरण एल्गोरिदम पर एक नज़र डालें। यह आपको वह देना चाहिए जो आप खोज रहे हैं। http://www.cs.sunysb.edu/~algorith/implement/DPsimp/implement.shtml –
अगर मैं इसे एक "इशारा-यूपी" के रूप में पहचानता हूं तो मैं संतुष्ट होगा।लेकिन यह जानना अभी भी महत्वपूर्ण होगा कि इस मामले में मेरी मूल पोस्ट में लिखे गए कुछ कैसे करें जो अब संतोषजनक नहीं है। धन्यवाद विदर। मैं अभी उस पर देखो। : डी – Chris