2016-03-07 12 views
7

मैं एक बुनियादी LWJGL खिड़की की स्थापना की है और मैं एक वर्ग glBegin(GL_QUADS) विधि का उपयोग कर आकर्षित करने के लिए कोशिश कर रहा हूँ। Square square = new Square(25, 25, 25), जिस तरह से मैं अपने स्क्वायर वर्ग आकर्षित करने के लिए वर्ग बोल रहा हूँ है ... लेकिन यह एक आयत है। जब मैं इसे कॉल करता हूं तो मैं सभी 25 के पैरामीटर के रूप में पास करता हूं। पहले दो प्रारंभिक निर्देशांक हैं और अंतिम 25 पक्ष की लंबाई है, जैसा कि नीचे देखा गया है। आयत बनाने के लिए मैं क्या गलत कर रहा हूं?क्यों यह एक वर्ग नहीं है? LWJGL

public Square(float x,float y,float sl) { 
    GL11.glColor3f(0.5F, 0.0F, 0.7F); 
    glBegin(GL11.GL_QUADS); 
     glVertex2f(x, y); 
     glVertex2f(x, y+sl); 
     glVertex2f(x+sl, y+sl); 
     glVertex2f(x+sl, y); 
    glEnd(); 
} 

मेरे व्यूपोर्ट कोड

glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); // Resets any previous projection matrices 
    glOrtho(0, 640, 0, 480, 1, -1); 
    glMatrixMode(GL_MODELVIEW); 
+1

आप अपने व्यूपोर्ट कोड दिखा सकते हैं? – zero298

+0

मैं कोड को तैनात किया है, समय देने के लिए कोशिश करते हैं और –

+0

वैसे भी मदद करने के लिए के लिए धन्यवाद, आप ओपन – elect

उत्तर

8

glOrtho(0, 640, 0, 480, 1, -1); का उपयोग करते हुए एक गैर वर्ग व्यूपोर्ट निर्माण करती है। इसका मतलब है कि प्रदान की गई उत्पादन होने की संभावना है, तो अपने विंडो आपका व्यूपोर्ट (या कम से कम एक ही पहलू अनुपात) के रूप में एक ही आकार नहीं है विषम होने जा रही तुलना में अधिक है। आपका व्यूपोर्ट अपने विंडो के रूप में एक ही आकार है

ortho comparison

है, तो यह वर्ग रहना चाहिए:

निम्नलिखित तुलना पर विचार करें। मैं JOGL उपयोग कर रहा हूँ, लेकिन मेरे आकार समारोह में, मैं अपने व्यूपोर्ट नयी आकृति प्रदान अपनी खिड़की से नया आकार होने के लिए।

Viewport as window size

glcanvas.addGLEventListener(new GLEventListener() { 
    @Override 
    public void reshape(GLAutoDrawable glautodrawable, int x, int y, int width, int height) { 
     GL2 gl = glautodrawable.getGL().getGL2(); 

     gl.glMatrixMode(GL2.GL_PROJECTION); 
     gl.glLoadIdentity(); // Resets any previous projection matrices 
     gl.glOrtho(0, width, 0, height, 1, -1); 
     gl.glMatrixMode(GL2.GL_MODELVIEW); 
    } 

    ... Other methods 

} 
+0

धन्यवाद! आपकी व्याख्या बहुत अच्छी है और मैं एक आयताकार के बजाय एक वर्ग बनाने में सक्षम था। –

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