الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

رسم مستطيل

بدأه hggif في 18 نوفمبر 2012 · 2 رد · 1,724 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا عملت برنامج يرسم مستطيل لكن عند تشغليه لا يظهر شي

ما المشكلة ؟؟

#include <glut.h>

void display(void) {
  glClear(GL_COLOR_BUFFER_BIT);
  glLoadIdentity();

glColor3f(1.0f,1.0f,1.0f);

    glBegin(GL_POLYGON);

  glVertex3i(5,100,0);
  glVertex3i(25,100,0);
  glVertex3i(5,50,0);
  glVertex3i(25,50,0);

  glEnd();
glFlush();

  glutSwapBuffers();

}

void idle(void) {
   glutPostRedisplay();
}
int main(int argc,char **argv) {
   glutInit(&argc,argv);
   glutInitWindowSize(512,512);
   glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
   glutCreateWindow("OpenGL GLUT ");
   glutDisplayFunc(display);
   glutIdleFunc(idle);


   glutMainLoop();

  return 0;
}

تم تعديل هذه المشاركة بواسطة hggif في 18 نوفمبر 2012 في 21:28

#2

السلام عليكم...

  1. الإحداثيات في الــ OpenGL هي من 1- و حتى 1+ على المحاور بشكل افتراضي , و يمكن تغيير ذلك باستخدام (glOrtho) , يرجى مراجعة الدروس و المواضيع المثبتة .
  2. في الكود الذي لديكم , يتم رسم الشكل و لكن خارج الشاشة ...
  3. الحل بتقسيم القيم على 100 .
  4. الـــ Polygon , يقوم برسم خطوط بين كل نقطة و النقطة التي تليها و هكذا ... ثم يرسم خط من آخر نقطة إلى أول نقطة , و بالتالي تسلسل النقط عندكم لن يرسم مستطيل , اترك لكم تصحيح ذلك و إليكم الكود .
  5. #include <glut.h>
    
    void display(void) {
    	glClear(GL_COLOR_BUFFER_BIT);
    	glLoadIdentity();
    
    	glColor3f(1.0f,1.0f,1.0f);
    
    	glBegin(GL_POLYGON);
    
    
    	glVertex3f(0.05,1,0);
    	glVertex3f(0.25,1,0);
    	glVertex3f(0.05,0.5,0);
    	glVertex3f(0.25,0.5,0);
    
    	glEnd();
    	glFlush();
    
    	glutSwapBuffers();
    
    }
    
    void idle(void) {
    	glutPostRedisplay();
    }
    int main(int argc,char **argv) {
    	glutInit(&argc,argv);
    	glutInitWindowSize(512,512);
    	glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
    	glutCreateWindow("OpenGL GLUT ");
    	glutDisplayFunc(display);
    	glutIdleFunc(idle);
    
    
    	glutMainLoop();
    
    	return 0;
    }

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 19 نوفمبر 2012 في 03:22

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3
houssam11350_11350 كتب:

السلام عليكم...

  1. الإحداثيات في الــ OpenGL هي من 1- و حتى 1+ على المحاور بشكل افتراضي , و يمكن تغيير ذلك باستخدام (glOrtho) , يرجى مراجعة الدروس و المواضيع المثبتة .
  2. في الكود الذي لديكم , يتم رسم الشكل و لكن خارج الشاشة ...
  3. الحل بتقسيم القيم على 100 .
  4. الـــ Polygon , يقوم برسم خطوط بين كل نقطة و النقطة التي تليها و هكذا ... ثم يرسم خط من آخر نقطة إلى أول نقطة , و بالتالي تسلسل النقط عندكم لن يرسم مستطيل , اترك لكم تصحيح ذلك و إليكم الكود .
  5. #include <glut.h>
    
    void display(void) {
    	glClear(GL_COLOR_BUFFER_BIT);
    	glLoadIdentity();
    
    	glColor3f(1.0f,1.0f,1.0f);
    
    	glBegin(GL_POLYGON);
    
    
    	glVertex3f(0.05,1,0);
    	glVertex3f(0.25,1,0);
    	glVertex3f(0.05,0.5,0);
    	glVertex3f(0.25,0.5,0);
    
    	glEnd();
    	glFlush();
    
    	glutSwapBuffers();
    
    }
    
    void idle(void) {
    	glutPostRedisplay();
    }
    int main(int argc,char **argv) {
    	glutInit(&argc,argv);
    	glutInitWindowSize(512,512);
    	glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
    	glutCreateWindow("OpenGL GLUT ");
    	glutDisplayFunc(display);
    	glutIdleFunc(idle);
    
    
    	glutMainLoop();
    
    	return 0;
    }

مشكور

مواضيع مشابهة