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

اود ان ارسم هذا المشهد, هل من مساعدة؟

بدأه SuperNova57 في 9 مايو 2012 · 0 رد · 893 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم و رحمة الله و بركاته

اود ان اقوم برسم منزلين و شجرة و شمس و اضيف اضاءة و كساء و في مرحلة متقدمة لدي كود روبوت اود ان اضيفه للمشهد و اقوم بعمل animation و navigation له

ساقوم بالخطوات اللي اعرفها و لانني ما زلت في بدايتي مع مكتبة الرسم هذه ستواجهني العديد من المشاكل اللتي لا اعرف حلها لذا ساقوم بوضعها هنا في هذا الموضوع

خطوتي الاولى الان هي ان ارسم منزلا .. وضعت القيم و لكني لا اعلم كيف سيبدو منظره لانه لم يظهر اي شي في الشاشة فهي سوداء.. هل من مساعدة من الخبراء؟

#include"gl/glut.h"

void square()
{
glBegin(GL_QUADS);

 glVertex2f(-2, -1.5);
 glVertex2f(-2, 2.5);
 glVertex2f(2, 2.5);
 glVertex2f(2, -1.5);
glEnd();

}

void triangle()
{
glBegin(GL_TRIANGLES);
 glVertex2f(-2, -1.5);
 glVertex2f(-2, 2.5);
 glVertex2f(2, 2.5);

 glEnd();

}


void myDisplay(void)
{
	glEnable(GL_DEPTH_TEST);			


	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);					 
	glClear(GL_COLOR_BUFFER_BIT||GL_DEPTH_BUFFER_BIT);	 
	glLoadIdentity();									 

glPushMatrix();
glTranslatef(0.0f, 0.0f, -10.0f);

glPushMatrix();	//front of house
glColor3f(1,0,0);
glRotatef(20.0f,0.0f, -1.0f, 0.0f);
square();
glPopMatrix();


glPushMatrix();
glTranslatef(4.0f, 0.0f, 0.0f);//side of house
glScalef(0.0f, 1.0f, 0.0f);
glColor3f(0,0,1);
square();
glPopMatrix();


glPushMatrix();	//front of roof 
glColor3f(1,1,0);
glRotatef(20.0f,0.0f, -1.0f, 0.0f);
triangle();
glPopMatrix();

glPushMatrix();
glTranslatef(4.0f, 0.0f, 0.0f);//side of roof
glScalef(0.0f, 1.0f, 0.0f);
glColor3f(0,0,1);
triangle();
glPopMatrix();


glPopMatrix();
	glFlush();
 	glutSwapBuffers();		// bring backbuffer to foreground

}

void myReshape(int width, int height) 
{
  glViewport(0, 0, (GLint) width, (GLint) height); /* Update the viewport size. */
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();

gluPerspective(54.0f,(GLfloat)width/(GLfloat)height,1.0f,1000.0f);

  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();


}


// the main windows entry point
int main(int argc, char** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB|GLUT_DEPTH);
	glutInitWindowSize(500, 500);
	glutInitWindowPosition(100, 100);

	glutCreateWindow("OpenGL Robot");


	glutDisplayFunc(myDisplay);
	glutReshapeFunc(myReshape);
	glutMainLoop();

	return 0;
}

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…