मैं ओपनजीएल समन्वय प्रणाली को समझने की कोशिश कर रहा हूं। हर जगह मैं इसे सही हाथ के रूप में वर्णित करता हूं, लेकिन यह मेरे अनुभव से मेल नहीं खाता है। मैंने कुछ आकार और 3-डी ऑब्जेक्ट्स खींचने की कोशिश की और मुझे लगता है कि जाहिर है कि ज़ेड-अक्ष पॉइंट "स्क्रीन में" (जबकि एक्स पॉइंट टू दाएं, और वाई अप - जो बाएं हाथ की समन्वय प्रणाली का विवरण है)। मैं क्या खो रहा हूँ?ओपनजीएल जेड-अक्ष कहाँ अंक?
संपादित करें: उदाहरण के लिए:
http://img576.imageshack.us/img576/9234/triangles.jpg
हैं + Z अंक दर्शक, क्यों हरी त्रिकोण है, जो जेड निर्देशांक बड़ा है, लाल एक के पीछे है?
initializeGL:
qglClearColor(Qt::darkGray);
glClearDepth(1.0);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glEnable(GL_COLOR);
resizeGL:
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0f, 50.0f, -50.0f, 50.0f, 50.0, -50.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
paintGL:
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef (-30.0, 1.0, 0.0, 0.0);
glRotatef (20.0, 0.0, 1.0, 0.0);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex3f(45.0, 0.0, 0.0);
glVertex3f(-45.0, 0.0, 0.0);
glVertex3f(0.0, 45.0, 0.0);
glVertex3f(0.0, -45.0, 0.0);
glVertex3f(0.0, 0.0, 45.0);
glVertex3f(0.0, 0.0, -45.0);
glEnd();
glBegin(GL_TRIANGLES);
//Red triangle:
glColor3f(1.0, 0.0, 0.0);
glVertex3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 20.0, 1.0);
glVertex3f(20.0, 0.0, 1.0);
//Green triangle:
glColor3f(0.0, 1.0, 0.0);
glVertex3f(-15.0, 0.0, 20.0);
glVertex3f(0.0, 25.0, 20.0);
glVertex3f(15.0, 0.0, 20.0);
glEnd();
"अगर + जेड पॉइंट दर्शक, क्यों हरा त्रिभुज, जो ज़ेड-समन्वय बड़ा है, लाल रंग के पीछे है?" आपने पूरे दृश्य को दो बार घुमाया। त्रिभुजों को प्रस्तुत करने से पहले मॉडल व्यू मैट्रिक्स के लिए glLoadIdentity पर कॉल करें, फिर परिणामों की तुलना करें। – SigTerm