Responding to Touch Events एंड्रॉइड ट्यूटोरियल के संबंध में किसी अन्य उपयोगकर्ता की मदद करने के बाद, मैंने सोर्स कोड डाउनलोड किया, और मैंने जो देखा उससे काफी परेशान था। ट्यूटोरियल यह तय करने में सक्षम नहीं है कि वह पंक्ति वैक्टर या कॉलम वैक्टर का उपयोग करना चाहता है, और यह सब मुझे मिश्रित दिखता है।क्या Google का एंड्रॉइड ओपनजीएल ट्यूटोरियल गलत रैखिक बीजगणित पढ़ रहा है?
एंड्रॉयड मैट्रिक्स पृष्ठ पर, वे दावा है कि उनके सम्मेलन स्तंभ वेक्टर/स्तंभ-प्रमुख, जो ओपन की खासियत है है।
क्या मैं सही हूं, या क्या मुझे कुछ याद आ रही है? यहां इसकी प्रासंगिक बिट्स हैं:
mProjMatrix * mVMatrix को गुणा करके एमवीपीमैट्रिक्स बनाकर प्रारंभ करें। अब तक सब ठीक है।
// Set the camera position (View matrix)
Matrix.setLookAtM(mVMatrix, 0, 0, 0, -3, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
// Calculate the projection and view transformation
Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0)
अगला वे MVPMatrix के बाएं हाथ की ओर करने के लिए एक रोटेशन जोड़कर कर रहे हैं? यह थोड़ा अजीब लगता है। गैर स्थानांतरित क्रम में
// Create a rotation for the triangle
Matrix.setRotateM(mRotationMatrix, 0, mAngle, 0, 0, -1.0f);
// Combine the rotation matrix with the projection and camera view
Matrix.multiplyMM(mMVPMatrix, 0, mRotationMatrix, 0, mMVPMatrix, 0)
अपलोड कर रहा है।
GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mvpMatrix, 0);
अंत में उनके शेडर में
, एक वेक्टर * आव्यूह गुणन?
// the matrix must be included as a modifier of gl_Position
" gl_Position = vPosition * uMVPMatrix;"
यह सब एक साथ जोड़ा जा रहा है, हम पाते हैं:
gl_Position = vPosition * mRotation * mProjection * mView;
कौन सा मेरी कल्पना के किसी भी खिंचाव से सही नहीं है। क्या कोई स्पष्टीकरण है कि मैं यह नहीं देख रहा हूं कि यहां क्या हो रहा है?
मेरे लिए दो संभावनाएं। या तो उदाहरण गलत है या उन्होंने मैट्रिक्स संचालन को अलग-अलग लागू किया है। [देखें] (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/opengl/Matrix.java) –
क्या आप स्पष्टीकरण दे सकते हैं समस्या, कृपया? – user1071136