पर क्लिक करें मैं क्यूटी-ओपनजीएल में एक आवेदन करने की कोशिश कर रहा हूं। यहां, मुझे माउस क्लिक के आधार पर क्लिक किए गए ऑब्जेक्ट को जानना होगा। मेरा विचार अंक (QWidget में ऑब्जेक्ट का क्षेत्र) संग्रहीत कर रहा है, और इन बिंदुओं के खिलाफ माउस क्लिक से मेल खाता है। क्या कोई यह कह सकता है कि यह कैसे करें ?, या कोई शरीर किसी अन्य तरीके से दिखा सकता है?क्यूटी ओपनजीएल- माउस के आधार पर ऑब्जेक्ट कैसे प्राप्त करें
उत्तर
यह समस्या आमतौर पर "पिकिंग" के रूप में जानी जाती है। ओपनजीएल स्वयं चीजों को खींचता है, इसके बारे में बात करने के लिए कोई ज्यामिति ऑब्जेक्ट प्रबंधन नहीं है (ओपनजीएल में ऑब्जेक्ट्स हैं, लेकिन वे हैं, जो आप सामान्य रूप से संसाधनों को कॉल करते हैं)।
ओपनजीएल को इन दिनों चुनने का सामान्य तरीका क्लिक स्थिति (glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth)
) पर गहराई मूल्य पुनर्प्राप्त कर रहा है और इसे विश्व स्थान (gluUnProject(...)
) में अप्रचलित कर रहा है। यह आपको क्लिक किए गए बिंदु के (x,y,z)
देता है।
चूंकि आप आमतौर पर क्लिक निर्देशांक में उपविभाजन संरचना को घुमाने के द्वारा कुछ स्थानिक उपविभाजन संरचना (बीएसपी, केडी, इत्यादि) में अपनी ज्यामिति का प्रबंधन करेंगे, इसलिए आप उस वस्तु को पुनर्प्राप्त कर सकते हैं।
एक और तरीका एक किरण पेश कर रहा है जो दृश्य में क्लिक का पालन करता है और रे/बाउंडिंग वॉल्यूम चौराहे परीक्षण करता है।
मैं पुराने ओपनजीएल चयन तंत्र के उपयोग को दृढ़ता से हतोत्साहित करता हूं: यह धीमा और उपयोग करने में बोझिल है।
- 1. क्यूटी में शीर्ष (आधार) अभिभावक कैसे प्राप्त करें?
- 2. माउस के नीचे माउस स्थान प्राप्त करें?
- 3. ओपनसीवी + ओपनजीएल + क्यूटी
- 4. क्यूटी QComboBox के माउस स्क्रॉलिंग को अक्षम कैसे करें?
- 5. ओपनजीएल और क्यूटी के साथ कैसे काम करें?
- 6. माउस निर्देशांक से कार्डिनल माउस दिशा कैसे प्राप्त करें
- 7. चित्र कैसे प्रदर्शित करें और माउस पर समन्वय प्राप्त करें
- 8. उपयोगकर्ताओं को भूमिका के आधार पर कैसे प्राप्त करें?
- 9. आईपी पते के आधार पर होस्ट नाम कैसे प्राप्त करें?
- 10. सप्ताह के आधार पर समूह, खाली सप्ताह कैसे प्राप्त करें?
- 11. इंडेक्सपैथ के आधार पर सेल टेक्स्ट कैसे प्राप्त करें?
- 12. ऑब्जेक्ट माउस के कर्सर का पालन करें
- 13. एक निश्चित नियंत्रण पर माउस स्थिति कैसे प्राप्त करें
- 14. Emacs में बफर पर फ़ोकस-अनुसरण-माउस कैसे प्राप्त करें?
- 15. MATLAB माउस को निर्देशांक कैसे प्राप्त करें
- 16. onMouseMove माउस स्थिति प्राप्त करें
- 17. क्यूटी - माउस पर कस्टम बटन के लिए स्टाइलशीट और
- 18. पिक्सेल से रंग कैसे प्राप्त करें? ओपनजीएल
- 19. JFreeChart माउस निर्देशांक प्राप्त करें
- 20. WP - श्रेणी के आधार पर पोस्ट प्राप्त करें?
- 21. केकफ़्पी में आधार यूआरएल कैसे प्राप्त करें?
- 22. माउस पर एक बिंदु के निर्देशांक कैसे प्राप्त करें JFreeChart के साथ क्लिक करें?
- 23. क्या सेट माउस के आधार पर एचटीएमएल 5 कैनवास में सभी माउस ड्रैगजेबल ऑब्जेक्ट्स हैं?
- 24. ओपनजीएल में कच्चे (अनवरोधित) बनावट डेटा कैसे प्राप्त करें?
- 25. एक क्यूटी ऑब्जेक्ट
- 26. ऑब्जेक्ट के फ़ील्ड कैसे प्राप्त करें?
- 27. आईफोन पर माउस ओवर कैसे ट्रिगर करें?
- 28. माउस कर्सर को माउस पर कैसे पकड़ें?
- 29. पैनल पर माउस व्हील कैप्चर कैसे करें?
- 30. एक टिंकर कैनवास में ऑब्जेक्ट के निर्देशांक कैसे प्राप्त करें?
अब शेडर्स प्रचलित हैं, क्या प्रत्येक ऑब्जेक्ट के लिए ऑब्जेक्ट आईडी सेट करना आसान नहीं है और एक अनब्लेंड किए गए छिपे हुए विमान को लिखने के लिए खंड शेडर का उपयोग करना आसान नहीं है? तब उठाकर उस विमान से माउस निर्देशांक पर पढ़ना हो जाता है। अप्रत्यक्ष या ज्यामिति खोज की कोई ज़रूरत नहीं है। –
@ बेन वोगेट: जब तक आप केवल माउस पॉइंटर के नीचे एक ऑब्जेक्ट में रूचि रखते हैं - बेशक यह असुरक्षित विधि से मेल खाता है - फिर हां। यदि आप सूचक के नीचे सभी वस्तुओं में रुचि रखते हैं, तो आपको रे पिकिंग विधि का उपयोग करना होगा, या कुछ गहराई छीलने का उपयोग करना होगा। हालांकि सबसे गंभीर 3 डी अनुप्रयोगों में वस्तुओं को कुछ स्थानिक संरचना का उपयोग करके प्रबंधित किया जाता है, और इसके खिलाफ एक परीक्षण आमतौर पर आसान होता है। – datenwolf
मैं gluUnProject और glReadPixels का उपयोग करके उठा रहा हूं, लेकिन नतीजा हमेशा निकटतम के बजाय सबसे पसंदीदा वस्तु है, किसी भी कारण से? – jondinham