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

ممكن شرح بسيط ل Gluttimerfunc

بدأه hidi في 12 ديسمبر 2008 · 6 رد · 1,838 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

glutTimerFunc

#2

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

حصلت لك رابط يشرح بشكل بسيط عن هذي الدالة طبعا هو بالانجليزي، لكن اعتقد انه بيفيدك،انا نفسي مبتدئ بس حاولت ابحث لك معي

http://pyopengl.sourceforge.net/documentat...Func.3GLUT.html

#3

مشكور اخويlug

استفدت من الرابط

بس ياليت اذا احد عنده خبره يعطيني مثال عليها علشان تتضح الصورة اكثر

#4

هذي أمثلة موجودة فيها استخدام هذه الدالة:

http://comsci.liu.edu/~murali/opengl/example3.txt

إن شاء الله يكون مفيد

#5

مشكوووووووووووووور اخوي يعطيك العافية

استفدت منها كثير

بس اتحملني شوي عندي بعض الاستفسارات

glutTimerFunc(30,Timer,0)

البارامتر الأخير مافائدته؟

وياليت توضح لي هالنقطة مافهمتها؟

There is no support for canceling a registered callback. Instead, ignore a callback based on its value parameter when it is triggered.

#6

الأمثلة التي وضعها الاخ lug تكفي ان شاء الله , ولكن هذا مثال اضافي :

#include <windows.h>
#include <gl\glut.h>



// بعد كل ثانية نقوم بتحديث الوقت
void timer(int val)
{

	printf("Hello");
	glutTimerFunc(1000,timer,val);
	glutPostRedisplay();

}

void renderScene(void) {

 	glClear(GL_COLOR_BUFFER_BIT );


	glutSwapBuffers();
}

int main(int argc, char **argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA);
	glutInitWindowSize(400,400);
	glutCreateWindow("Clock");

	glutDisplayFunc(renderScene);
	glutTimerFunc(0,timer,1000);

	glutMainLoop();

	return(0);
}

حيث في المثال السابق ’ في كل ثانية ( 1000 مللي ثانية ) .. نقوم بمناداة الدالة timer التي ستطبع الجملة المطلوبة ..

وداخل الدالة timer نستدعي الدالة glutTimerFunc حتى يتم مناداة الدالة timer مرة أخرى .. وليس مرة واحدة فقط ,

بالنسبة للبارمتر الاول ( وهو صفر في المثال هذا ) , فأعتقد والله أعلم ان القصد منه .. هو الوقت المطلوب لأول استدعاء للدالة .. وقد اكون مخطئ , .. لا أملك التفاصيل الكاملة , , ممكن ابحث عنها اكثر اذا اردت تفاصيل ,

There is no support for canceling a registered callback. Instead, ignore a callback based on its value Parameter when it is triggered

ما أفهمه .. هو أنه يقصد انه لا يمكن الغاء مناداة الدالة .. ستبقى تناديها الى انتهاء البرنامج , ولكن لايقاف عملها .. ممكن تستفيد من البارمتر val

void timer(int val)
{

	printf("Hello");
				if(val != -1) نتوقف عن المناداة اذا صارت القيمة -1
	glutTimerFunc(1000,timer,-1);

	glutPostRedisplay();

}

عموما .. المهم تعرف تستخدم الدالة ... مثل المثال الموجود في الاعلى , ولا عليك من باقي التفاصيل لانها غير مهمة كثيرا,

وتستطيع اصلا الاستغناء عن هذه الدالة , وتبني دالتك الخاصة فيك , فهذا يعطيك تحكم أكبر ,

تم تعديل هذه المشاركة بواسطة الشمري في 16 ديسمبر 2008 في 20:05

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#7

مشكوور اخوي الشمري

ماقصرت وضحت

الله يعطيكم العافية ووسع لكم بالدنيا والأخرة

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