ورود

View Full Version : مبتدی: چرخش كره حول خودش در opengl



shaima
چهارشنبه 08 دی 1389, 20:08 عصر
سلام
به كمك توابع اوپن جي ال كره اي رو رسم كردم و حالا ميخوام با فشردن كليدهاي كيبورد كره حول خودش و در جهت كليد زده شده بچرخه
با استفاده از تابع glrotatef اين كار رو انجام ميدم با زاويه صفر و مثلا حول محور x :

glRotatef(0.0f,1.0f,0.0f,0.0f);
glutPostRedisplay();ولي چرخش به قدري سريعه كه اصلا ديده نميشه يعني از رو خط هاي سياهي كه روي كره ميفته ميفهمم كه داره ميچرخه چطوري ميشه اين چرخش رو يه چرخش اروم و قابل مشاهده كرد؟ اصلا كاري كه انجام ميدم درسته يا نه؟

sarakh
یک شنبه 12 دی 1389, 00:03 صبح
سلام دوست عزیز
نمی دونم کاری که انجام می دین درسته یا نه.چون تا حالا با استفاده از دکمه های جهت دار شی رو حرکت ندادم.
ولی فکر می کنم باید از روش چرخش مداوم استفاده کنین.یه قسمت از متن کتابی که در اختیار دارم رو اینجا کپی می کنم.

چرخاندن اشياء بطور مداوم:
براي انجام اين كار در ابتدا ميبايست شما يك متغير از نوع GLfloatدر برنامهيتان تعريف كنيد و بجاي اينكه مقدار زاويه ي چرخش شئ را به صورت مستقيم در دستور glRotate به پارامترAngleبدهيد،متغير نوعGLfloat را كه در ابتداي برنامه تعريف كرديد را بعنوان زاويه ي چرخش در دستورglRotate قرار دهید.
اما هنوز كار تمام نشده است. براي اينكه شئ بطوردائم درحال چرخش باشد بايستي مقدار متغيري كه بعنوان زاويه ي چرخش به دستور glRotateداده ايم، دائماً درحال افزايش يا كاهش باشد.اگرفرض كنيم نام متغيري كه تعريف كرديم rquadباشد و بخواهيم از روش افزايشي استفاده كنيم بايد اين خط را در تابع DrawGLScene اضافه كنيم.
Rquad += 0. 5f ;
براي روش كاهشي، قبل از علامت مساوي از علامت منها استفاده ميكنيم.
Rquad -= 0.15f ;



این متن از کتاب آقای مسلم کریمی و پدرام خدا بنده انتخاب شده.

احتمالا از این روش می شه استفاده کرد که هر بار دکمه فشار داده شد به این متغیر مقداری اضافه بشه یا از اون کم بشه.
انشا... درست باشه و این روش برای کاری که می خوان انجام بدین به کار بیاد.

cardano7
یک شنبه 12 دی 1389, 13:11 عصر
post is deleted