دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 5 , از مجموع 5

موضوع: مشکل در opengl "لطفا کمک کنید"

  1. #1
    کاربر جدید
    نوشته ها
    4
    ارسال تشکر
    2
    دریافت تشکر: 0
    قدرت امتیاز دهی
    0
    Array

    پیش فرض مشکل در opengl "لطفا کمک کنید"

    سلام دوستان و اساتید
    من چند تا برنامه ی opengl گرفتم که وقتی اجراشون می کنم،به جای اینکه خروجی ظاهر شه.
    صفحه سفید می شه.
    مشکل از چیه؟
    مثلا همین برنامه ای که آقای ادمین گذاشتن توو سایت
    ستاره ای که با کیبورد جابه جا میشه
    این کدش:
    کد:
    #include"stdafx.h"#include<iostream>
    #include<glut.h>
    #include <math.h>
    
    
    
    
    // Define a constant for the value of PI
    #define GL_PI 3.1415f
    
    
    // Rotation amounts
    static GLfloat xRot = 0.0f;
    static GLfloat yRot = 0.0f;
    
    
    // Flags for effects
    #define MODE_SOLID 0
    #define MODE_LINE  1
    #define MODE_POINT 2
    
    
    int iMode = MODE_SOLID;
    GLboolean bEdgeFlag = TRUE;
    
    
    ///////////////////////////////////////////////////////////////////////////////
    // Reset flags as appropriate in response to menu selections
    void ProcessMenu(int value)
    	{
    	switch(value)
    		{
    		case 1:
    			iMode = MODE_SOLID;
    			break;
    
    
    		case 2:
    			iMode = MODE_LINE;
    			break;
    
    
    		case 3:
    			iMode = MODE_POINT;
    			break;
    
    
    		case 4:
    			bEdgeFlag = TRUE;
    			break;
    
    
    		case 5:
    		default:
    			bEdgeFlag = FALSE;
    			break;
    		}
    
    
    	glutPostRedisplay();
    	}
    
    
    
    
    // Called to draw scene
    void RenderScene(void)
    	{
    	// Clear the window
    	glClear(GL_COLOR_BUFFER_BIT);
    
    
    
    
    	// Draw back side as a polygon only, if flag is set
    	if(iMode == MODE_LINE)
    		glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
    
    
    	if(iMode == MODE_POINT)
    		glPolygonMode(GL_FRONT_AND_BACK,GL_POINT);
    
    
    	if(iMode == MODE_SOLID)
    		glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
    
    
    
    
    	// Save matrix state and do the rotation
    	glPushMatrix();
    	glRotatef(xRot, 1.0f, 0.0f, 0.0f);
    	glRotatef(yRot, 0.0f, 1.0f, 0.0f);
    
    
    
    
    	// Begin the triangles
    	glBegin(GL_TRIANGLES);
    
    
    		glEdgeFlag(bEdgeFlag);
    		glVertex2f(-20.0f, 0.0f);
    		glEdgeFlag(TRUE);
    		glVertex2f(20.0f, 0.0f);
    		glVertex2f(0.0f, 40.0f);
    
    
    		glVertex2f(-20.0f,0.0f);
    		glVertex2f(-60.0f,-20.0f);
    		glEdgeFlag(bEdgeFlag);
    		glVertex2f(-20.0f,-40.0f);
    		glEdgeFlag(TRUE);
    
    
    		glVertex2f(-20.0f,-40.0f);
    		glVertex2f(0.0f, -80.0f);
    		glEdgeFlag(bEdgeFlag);
    		glVertex2f(20.0f, -40.0f);		
    		glEdgeFlag(TRUE);
    
    
    		glVertex2f(20.0f, -40.0f);		
    		glVertex2f(60.0f, -20.0f);
    		glEdgeFlag(bEdgeFlag);
    		glVertex2f(20.0f, 0.0f);
    		glEdgeFlag(TRUE);
    
    
    		// Center square as two triangles
    		glEdgeFlag(bEdgeFlag);
    		glVertex2f(-20.0f, 0.0f);
    		glVertex2f(-20.0f,-40.0f);
    		glVertex2f(20.0f, 0.0f);
    		
    		glVertex2f(-20.0f,-40.0f);
    		glVertex2f(20.0f, -40.0f);
    		glVertex2f(20.0f, 0.0f);
    		glEdgeFlag(TRUE);
    	
    	// Done drawing Triangles
    	glEnd();
    
    
    	// Restore transformations
    	glPopMatrix();
    
    
    	// Flush drawing commands
    	glutSwapBuffers();
    	}
    
    
    // This function does any needed initialization on the rendering
    // context. 
    void SetupRC()
    	{
    	// Black background
    	glClearColor(0.0f, 0.0f, 0.0f, 1.0f );
    
    
    	// Set drawing color to green
    	glColor3f(0.0f, 1.0f, 0.0f);
    	}
    
    
    void SpecialKeys(int key, int x, int y)
    	{
    	if(key == GLUT_KEY_UP)
    		xRot-= 5.0f;
    
    
    	if(key == GLUT_KEY_DOWN)
    		xRot += 5.0f;
    
    
    	if(key == GLUT_KEY_LEFT)
    		yRot -= 5.0f;
    
    
    	if(key == GLUT_KEY_RIGHT)
    		yRot += 5.0f;
    
    
    	if(key > 356.0f)
    		xRot = 0.0f;
    
    
    	if(key < -1.0f)
    		xRot = 355.0f;
    
    
    	if(key > 356.0f)
    		yRot = 0.0f;
    
    
    	if(key < -1.0f)
    		yRot = 355.0f;
    
    
    	// Refresh the Window
    	glutPostRedisplay();
    	}
    
    
    
    
    void ChangeSize(int w, int h)
    	{
    	GLfloat nRange = 100.0f;
    
    
    	// Prevent a divide by zero
    	if(h == 0)
    		h = 1;
    
    
    	// Set Viewport to window dimensions
        glViewport(0, 0, w, h);
    
    
    	// Reset projection matrix stack
    	glMatrixMode(GL_PROJECTION);
    	glLoadIdentity();
    
    
    	// Establish clipping volume (left, right, bottom, top, near, far)
        if (w <= h) 
    		glOrtho (-nRange, nRange, -nRange*h/w, nRange*h/w, -nRange, nRange);
        else 
    		glOrtho (-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange, nRange);
    
    
    	// Reset Model view matrix stack
    	glMatrixMode(GL_MODELVIEW);
    	glLoadIdentity();
    	}
    
    
    int main(int argc, char* argv[])
    	{
    	int nModeMenu;
    	int nEdgeMenu;
    	int nMainMenu;
    
    
    	glutInit(&argc, argv);
    	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    	glutCreateWindow("Solid and Outlined Star");
    	
    	// Create the Menu
    	nModeMenu = glutCreateMenu(ProcessMenu);
    	glutAddMenuEntry("Solid",1);
    	glutAddMenuEntry("Outline",2);
    	glutAddMenuEntry("Points",3);
    
    
    	nEdgeMenu = glutCreateMenu(ProcessMenu);
    	glutAddMenuEntry("On",4);
    	glutAddMenuEntry("Off",5);
    
    
    	nMainMenu = glutCreateMenu(ProcessMenu);
    	glutAddSubMenu("Mode", nModeMenu);
    	glutAddSubMenu("Edges", nEdgeMenu);
    	glutAttachMenu(GLUT_RIGHT_BUTTON);
    	
    	glutReshapeFunc(ChangeSize);
    	glutSpecialFunc(SpecialKeys);
    	glutDisplayFunc(RenderScene);
    	SetupRC();
    	glutMainLoop();
    
    
    	return 0;
    	}
    لطفا راهنمایی بفرمایید
    ویرایش توسط karaj.designer : 15th December 2013 در ساعت 07:20 PM

  2. #2
    همکار بخش اختراعات و نوآوری
    نوشته ها
    259
    ارسال تشکر
    2,318
    دریافت تشکر: 1,613
    قدرت امتیاز دهی
    18679
    Array

    پیش فرض پاسخ : مشکل در opengl "لطفا کمک کنید"

    نقل قول نوشته اصلی توسط karaj.designer نمایش پست ها
    سلام دوستان و اساتید
    من چند تا برنامه ی opengl گرفتم که وقتی اجراشون می کنم،به جای اینکه خروجی ظاهر شه.
    صفحه سفید می شه.
    مشکل از چیه؟
    مثلا همین برنامه ای که آقای ادمین گذاشتن توو سایت
    ستاره ای که با کیبورد جابه جا میشه
    این کدش:
    کد:
    #include"stdafx.h"#include<iostream>
    #include<glut.h>
    #include <math.h>
    
    
    
    
    // Define a constant for the value of PI
    #define GL_PI 3.1415f
    
    
    // Rotation amounts
    static GLfloat xRot = 0.0f;
    static GLfloat yRot = 0.0f;
    
    
    // Flags for effects
    #define MODE_SOLID 0
    #define MODE_LINE  1
    #define MODE_POINT 2
    
    
    int iMode = MODE_SOLID;
    GLboolean bEdgeFlag = TRUE;
    
    
    ///////////////////////////////////////////////////////////////////////////////
    // Reset flags as appropriate in response to menu selections
    void ProcessMenu(int value)
        {
        switch(value)
            {
            case 1:
                iMode = MODE_SOLID;
                break;
    
    
            case 2:
                iMode = MODE_LINE;
                break;
    
    
            case 3:
                iMode = MODE_POINT;
                break;
    
    
            case 4:
                bEdgeFlag = TRUE;
                break;
    
    
            case 5:
            default:
                bEdgeFlag = FALSE;
                break;
            }
    
    
        glutPostRedisplay();
        }
    
    
    
    
    // Called to draw scene
    void RenderScene(void)
        {
        // Clear the window
        glClear(GL_COLOR_BUFFER_BIT);
    
    
    
    
        // Draw back side as a polygon only, if flag is set
        if(iMode == MODE_LINE)
            glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
    
    
        if(iMode == MODE_POINT)
            glPolygonMode(GL_FRONT_AND_BACK,GL_POINT);
    
    
        if(iMode == MODE_SOLID)
            glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
    
    
    
    
        // Save matrix state and do the rotation
        glPushMatrix();
        glRotatef(xRot, 1.0f, 0.0f, 0.0f);
        glRotatef(yRot, 0.0f, 1.0f, 0.0f);
    
    
    
    
        // Begin the triangles
        glBegin(GL_TRIANGLES);
    
    
            glEdgeFlag(bEdgeFlag);
            glVertex2f(-20.0f, 0.0f);
            glEdgeFlag(TRUE);
            glVertex2f(20.0f, 0.0f);
            glVertex2f(0.0f, 40.0f);
    
    
            glVertex2f(-20.0f,0.0f);
            glVertex2f(-60.0f,-20.0f);
            glEdgeFlag(bEdgeFlag);
            glVertex2f(-20.0f,-40.0f);
            glEdgeFlag(TRUE);
    
    
            glVertex2f(-20.0f,-40.0f);
            glVertex2f(0.0f, -80.0f);
            glEdgeFlag(bEdgeFlag);
            glVertex2f(20.0f, -40.0f);        
            glEdgeFlag(TRUE);
    
    
            glVertex2f(20.0f, -40.0f);        
            glVertex2f(60.0f, -20.0f);
            glEdgeFlag(bEdgeFlag);
            glVertex2f(20.0f, 0.0f);
            glEdgeFlag(TRUE);
    
    
            // Center square as two triangles
            glEdgeFlag(bEdgeFlag);
            glVertex2f(-20.0f, 0.0f);
            glVertex2f(-20.0f,-40.0f);
            glVertex2f(20.0f, 0.0f);
            
            glVertex2f(-20.0f,-40.0f);
            glVertex2f(20.0f, -40.0f);
            glVertex2f(20.0f, 0.0f);
            glEdgeFlag(TRUE);
        
        // Done drawing Triangles
        glEnd();
    
    
        // Restore transformations
        glPopMatrix();
    
    
        // Flush drawing commands
        glutSwapBuffers();
        }
    
    
    // This function does any needed initialization on the rendering
    // context. 
    void SetupRC()
        {
        // Black background
        glClearColor(0.0f, 0.0f, 0.0f, 1.0f );
    
    
        // Set drawing color to green
        glColor3f(0.0f, 1.0f, 0.0f);
        }
    
    
    void SpecialKeys(int key, int x, int y)
        {
        if(key == GLUT_KEY_UP)
            xRot-= 5.0f;
    
    
        if(key == GLUT_KEY_DOWN)
            xRot += 5.0f;
    
    
        if(key == GLUT_KEY_LEFT)
            yRot -= 5.0f;
    
    
        if(key == GLUT_KEY_RIGHT)
            yRot += 5.0f;
    
    
        if(key > 356.0f)
            xRot = 0.0f;
    
    
        if(key < -1.0f)
            xRot = 355.0f;
    
    
        if(key > 356.0f)
            yRot = 0.0f;
    
    
        if(key < -1.0f)
            yRot = 355.0f;
    
    
        // Refresh the Window
        glutPostRedisplay();
        }
    
    
    
    
    void ChangeSize(int w, int h)
        {
        GLfloat nRange = 100.0f;
    
    
        // Prevent a divide by zero
        if(h == 0)
            h = 1;
    
    
        // Set Viewport to window dimensions
        glViewport(0, 0, w, h);
    
    
        // Reset projection matrix stack
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
    
    
        // Establish clipping volume (left, right, bottom, top, near, far)
        if (w <= h) 
            glOrtho (-nRange, nRange, -nRange*h/w, nRange*h/w, -nRange, nRange);
        else 
            glOrtho (-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange, nRange);
    
    
        // Reset Model view matrix stack
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        }
    
    
    int main(int argc, char* argv[])
        {
        int nModeMenu;
        int nEdgeMenu;
        int nMainMenu;
    
    
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
        glutCreateWindow("Solid and Outlined Star");
        
        // Create the Menu
        nModeMenu = glutCreateMenu(ProcessMenu);
        glutAddMenuEntry("Solid",1);
        glutAddMenuEntry("Outline",2);
        glutAddMenuEntry("Points",3);
    
    
        nEdgeMenu = glutCreateMenu(ProcessMenu);
        glutAddMenuEntry("On",4);
        glutAddMenuEntry("Off",5);
    
    
        nMainMenu = glutCreateMenu(ProcessMenu);
        glutAddSubMenu("Mode", nModeMenu);
        glutAddSubMenu("Edges", nEdgeMenu);
        glutAttachMenu(GLUT_RIGHT_BUTTON);
        
        glutReshapeFunc(ChangeSize);
        glutSpecialFunc(SpecialKeys);
        glutDisplayFunc(RenderScene);
        SetupRC();
        glutMainLoop();
    
    
        return 0;
        }
    لطفا راهنمایی بفرمایید
    سلام
    احتمال داره مشکل سخت افزاری باشه
    شاید مشکل از راه انداز opengl کارت گرافیکتون باشه
    مدل گرافیکتون چیه؟
    I AM ADRENALINE

  3. کاربرانی که از پست مفید TERRORIST سپاس کرده اند.


  4. #3
    کاربر جدید
    نوشته ها
    4
    ارسال تشکر
    2
    دریافت تشکر: 0
    قدرت امتیاز دهی
    0
    Array

    پیش فرض پاسخ : مشکل در opengl "لطفا کمک کنید"

    ATI Radeon HD 5470 DDR3 1024 MB up to 3579 MB
    الان این برنامه برای شما اجرا می شه برای شما؟
    البته این مشکل برای همه ی برنامه هام پیش نمیادا...

    من در اصل می خوام یه برنامه بنویسم که یه دایره 3 بعدی رسم کنه و با کلیدهای جهت دار به بالا پایین چپ راست حرکت کنه.
    دوستان کمک کنید لطفا...

  5. #4
    همکار بخش اختراعات و نوآوری
    نوشته ها
    259
    ارسال تشکر
    2,318
    دریافت تشکر: 1,613
    قدرت امتیاز دهی
    18679
    Array

    پیش فرض پاسخ : مشکل در opengl "لطفا کمک کنید"

    نقل قول نوشته اصلی توسط karaj.designer نمایش پست ها
    ATI Radeon HD 5470 DDR3 1024 MB up to 3579 MB
    الان این برنامه برای شما اجرا می شه برای شما؟
    البته این مشکل برای همه ی برنامه هام پیش نمیادا...

    من در اصل می خوام یه برنامه بنویسم که یه دایره 3 بعدی رسم کنه و با کلیدهای جهت دار به بالا پایین چپ راست حرکت کنه.
    دوستان کمک کنید لطفا...
    پس از لپتاپ استفاده میکنید
    درایورشو یکبار چک کنید
    من اطلاعاتم واسه gl/cl/dx هست
    I AM ADRENALINE

  6. کاربرانی که از پست مفید TERRORIST سپاس کرده اند.


  7. #5
    کاربر جدید
    نوشته ها
    4
    ارسال تشکر
    2
    دریافت تشکر: 0
    قدرت امتیاز دهی
    0
    Array

    پیش فرض پاسخ : مشکل در opengl "لطفا کمک کنید"

    درایورشو دوباره نصب کردم.
    متاسفانه مشکل مرتفع نشد.
    من جایی خونده بودم که اگه جای تکه کد ها درست نباشه،ممکنه این اتفاق بیفته.
    دوستان میشه شمام یه نگاه بندازین ببینین مشکل از کجاست؟
    اصلا کسی برنامه ی دایره ی 3 بعدی که با حرکتا کلیدهای جهت دار کیبورد بالا پایین چپ راست میشه رو داره؟

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مقایسه: مقایسه کامل بین "آی پد ایر" و "گلکسی نوت 10.1" + تصاویر
    توسط Almas Parsi در انجمن مقایسه
    پاسخ ها: 3
    آخرين نوشته: 20th November 2013, 03:14 PM
  2. پاسخ ها: 0
    آخرين نوشته: 19th November 2013, 09:10 AM
  3. آموزشی: "آموزش گرامر كلمات ربطي "كه"- "Relative Clauses"
    توسط Almas Parsi در انجمن Grammar
    پاسخ ها: 0
    آخرين نوشته: 2nd August 2013, 11:10 AM
  4. پاسخ ها: 0
    آخرين نوشته: 21st July 2010, 03:44 PM
  5. پاسخ ها: 0
    آخرين نوشته: 14th September 2008, 04:04 PM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •