2010-06-06 12 views
7

मेरे पास एक शीर्ष बाएं समन्वय प्रणाली वाला ओपनजीएल दृश्य है। जब मैं glscale यह ऊपर बाईं ओर (0,0) से ज़ूम करता है। मैं इसे माउस के समन्वय से ज़ूम इन करना चाहता हूं (ओजीएल फ्रेम के सापेक्ष)। यह कैसे किया जाता है? धन्यवादमाउस (ओपनजीएल) में ज़ूम करने के लिए एल्गोरिदम

उत्तर

10

मेरा मानना ​​है कि यह चार चरणों में किया जा सकता है:

  1. का उपयोग कर माउस के x और y निर्देशांक जो भी आपके विंडोइंग प्रणाली (यानी भरमार या एसडीएल) से कार्य का पता लगाएं कि के लिए है, और gluUnProject का उपयोग पाने के लिए वस्तु निर्देशांक है कि उन खिड़की के अनुरूप निर्देशांक
  2. अनुवाद (एक्स, वाई, 0) अपने वांछित वेक्टर द्वारा
  3. स्केल यही निर्देशांक पर मूल डाल करने के लिए (i, j, k)
  4. अनुवाद द्वारा (द्वारा - x, -y, 0) मूल को वापस शीर्ष पर डालने के लिए eft
3

मैंने ग्लोर्थो का उपयोग करके एक चिकनी ज़ूम किया। मेरी समाधान के कंकाल

glortho (प्रारंभिक व्यूपोर्ट एक्स, वाई & आकार)
glcalllist (मेरा प्रदर्शन सूची)

प्रस्तुत करना है।

लूप धीरे-धीरे अंतिम व्यूपोर्ट समन्वय/आकार पर जाने के लिए। अपने समय और एफपीएस आवश्यकताओं को लागू करें


glortho (अंतिम व्यूपोर्ट एक्स, वाई & आकार)
glcalllist (मेरा प्रदर्शन सूची)

प्रस्तुत करना मैं आप सामान्य विचार प्राप्त की उम्मीद है। इसे स्वीकार करने के लिए कुछ और तरीके हैं, लेकिन मुझे समझने के लिए सबसे आसान तरीका glortho मिलता है।

संबंधित मुद्दे