कैसे चुनें I ओपनजीएल ईएस 1 ऐप पर काम कर रहा हूं जो 2 डी ग्रिड प्रदर्शित करता है और उपयोगकर्ता को नेविगेट करने और स्केल/घुमाने के लिए अनुमति देता है। मुझे अपनी ओपनगल दुनिया और ग्रिड सेल में व्यू टच निर्देशांक के सटीक अनुवाद को जानने की आवश्यकता है। क्या नेविगेशन के लिए पिछले कुछ परिवर्तनों के विपरीत करने के लिए कोई सहायक है? या मुझे हाथ से मैट्रिक्स सामान की गणना और करनी चाहिए?आईफोन ओपनजीएल ईएस -
उत्तर
पिकिंग मोड ओपनजीएल ईएस में उपलब्ध नहीं है। लेकिन वर्तमान ओपनजीएल राज्य से प्रक्षेपित मैट्रिक्स का उपयोग करके किसी भी 3 डी बिंदु के स्क्रीन समन्वय की गणना करना आसान है। यहाँ कैसे मैं इसे ((एक्स, वाई, जेड) संरचनाओं IMPoint2D और IMPoint3D बुनियादी (एक्स, वाई) और) कर
+ (IMPoint2D) getScreenCoorOfPoint:(IMPoint3D)_point3D
{
GLfloat p[16]; // Where The 16 Doubles Of The Projection Matrix Are To Be Stored
glGetFloatv(GL_PROJECTION_MATRIX, p); // Retrieve The Projection Matrix
/*
Multiply M * point
*/
GLfloat _p[] = {p[0]*_point3D.x +p[4]*_point3D.y +p[8]*_point3D.z + p[12],
p[1]*_point3D.x +p[5]*_point3D.y +p[9]*_point3D.z + p[13],
p[2]*_point3D.x +p[6]*_point3D.y +p[10]*_point3D.z+ p[14],
p[3]*_point3D.x +p[7]*_point3D.y +p[11]*_point3D.z+ p[15]};
/*
divide by scale factor
*/
IMPoint2D _p2D = {_p[0]/_p[3], _p[1]/_p[3]};
/*
get result in screen coordinates. In this case I'm in landscape mode
*/
return (IMPoint2D) {_p2D.x*240.0f + 240.0f, (1.0f - _p2D.y) *160.0f};
}
ध्वनि क्या आप देख रहे हैं एक unproject तरीका है की तरह है। ग्लूट लाइब्रेरी एक के साथ आता है, लेकिन यह ओपनजीएल ईएस पर उपलब्ध नहीं है। rewrite the glut code yourself to be iphone compatible आप अपने स्वयं के कोड को अप्रचलित करने के लिए भी लिख सकते हैं, जिसमें आपके व्यूपोर्ट में टचपॉइंट को स्केल करने की आवश्यकता होगी, इसे अपने प्रक्षेपण * मॉडलव्यू मैट्रिस के विपरीत से गुणा करें, और 3 डी वेक्टर प्राप्त करने के लिए डब्ल्यू द्वारा विभाजित करें।
GL_MODELVIEW_MATRIX के साथ ऐसा करना संभव हो सकता है? या GL_MODLVIEW, मैं दृश्य स्थिति को संशोधित नहीं कर रहा हूं, केवल डेल मॉडलव्यू। मैं यह कर रहा:
glMatrixMode(GL_MODELVIEW);
// Setup model view matrix
glLoadIdentity();
[gAccel GetAccelerometerMatrix:(GLfloat *) matrix headingX:headx headingY: heady headingZ:headz];
// Finally load matrix
glLoadMatrixf((GLfloat*)matrix);
glPushMatrix();
glRotatef(-90, 1, 0, 0);
glScalef(0.0005, 0.0005, 0.0005);
glTranslatef(x, 0.0, z);
धन्यवाद
- 1. ओपनजीएल ईएस 1.1 (आईफोन)
- 2. फुलस्क्रीन बनावट आईफोन ओपनजीएल ईएस
- 3. ओपनजीएल ईएस (आईफोन) टच पिकिंग
- 4. आईफोन बोर्ड गेम: ओपनजीएल ईएस या कोरग्राफिक्स?
- 5. आईफोन ओपनजीएल ईएस 2.0 - पिक्सेल परफेक्ट टेक्सचर
- 6. आईफोन ओपनजीएल ईएस एकल या एकाधिक विचार?
- 7. आईफोन (ओपनजीएल ईएस) पर कोई glpolygonMode विकल्प?
- 8. ओपनजीएल ईएस
- 9. ओपनजीएल | ईएस
- 10. ओपनजीएल ईएस 2
- 11. ओपनजीएल ईएस 2.0
- 12. ओपनजीएल ईएस मेमोरी
- 13. ओपनजीएल ईएस रेटिना समर्थन
- 14. ओपनजीएल ईएस 2.0
- 15. ओपनजीएल ईएस 2.0 समर्थन?
- 16. ओपनजीएल ईएस: रंग
- 17. ओपनजीएल-ईएस और सीजी
- 18. ओपनजीएल ईएस 2.0
- 19. एंड्रॉइड ओपनजीएल ईएस ऐप
- 20. ओपनजीएल ईएस 2.0
- 21. ओपनजीएल ईएस 2.0
- 22. ओपनजीएल ईएस 2.0
- 23. ओपनजीएल ईएस और ओपनजीएल संगत शेडर्स
- 24. ओपनजीएल धुंध बनाम ओपनजीएल ईएस धुंध
- 25. ओपनजीएल ईएस 2.0 और ओपनजीएल 4
- 26. आईफोन पर ओपनजीएल ईएस को अनुकूलित करना और इंस्ट्रूमेंट्स
- 27. आईफोन पर ओपनजीएल ईएस में मल्टीसाम्पलिंग कैसे सक्रिय करते हैं?
- 28. ओपनजीएल ईएस एंड्रॉइड मैट्रिक्स ट्रांसफॉर्मेशन
- 29. कोर एनीमेशन या ओपनजीएल ईएस?
- 30. ओपनजीएल-ईएस स्टैंसिल बफर वर्किंग
मैं समारोह जोड़ा - (CGPoint) getScreenCoorOfPoint: (IMPoint3D) _point3D जो मुझे दुनिया में अपने आइटम स्थिति देने के लिए लेकिन थोड़ा मैं अब अटक कर रहा हूँ लगता है पर है: * मैं वस्तुओं की स्थिति है कि है * मैं दुनिया में मेरी स्थिति है (gluLookAt आंख [0], आंख [1], आंख [2]) * और फिर मैं जहां मैंने एस पर टैप किया है क्रेन मैं इस सब में कैसे शामिल हो सकता हूं, यह महानता संग्रह करने के मेरे रास्ते में आखिरी बात है !!!! – Burf2000