سوال: چگونه تو opengl وقتی شکلی رسم میکنیم با تغییر سایز صفحه این شکل ما هم تغییر سایز پیدا کنه به نسبت صفحه اصلی؟اگه میشه یه شبه کد بزارین
اگر از glut استفاده می کنی باید ازتابع glutReshapFunc استفاده کنی و دوباره مختصات و ماتریس پروجکشن رو تعریف کنی. به این تابع باید آدرس تابعی که قرار بعد از تغییر اندازه فراخوانی میشه رو بدی:

GLvoid reshape( GLsizei width, GLsizei height ) {     GLdouble    aspect, left, right, bottom, top;      glViewport( 0, 0, width, height );      /* compute aspect ratio */     aspect = (GLdouble) width / (GLdouble) height;      /* make sure the window goes from [-2.0, 2.0] in the        smallest dimension */     if ( aspect < 1.0 ) {          left = -2.0;          right = 2.0;          bottom = -2.0 * ( 1.0 / aspect );          top = 2.0 * ( 1.0 / aspect );     } else {          left = -2.0 * aspect;          right = 2.0 * aspect;          bottom = -2.0;          top = 2.0;     }      glMatrixMode( GL_PROJECTION );     /* Reset world coordinates first ... */     glLoadIdentity();      /* Then set them to what we want based on the new aspect ratio */     glOrtho( left, right, bottom, top, -1.0, 1.0 );     glMatrixMode( GL_MODELVIEW ); }


سوال بعدی:اینکه ما وقتی رو این شکل کلیک میکنیم یه کاری انجام میشه ولی وقتی صفحه را تغییر سایز دادیمش این محدوده انتخاب موس عوض میشه و روش دیگه کلیک نمیششه بلکه جایی دیگه کلیک میکنم میشه یعنی من محدوده انتخابه موسو ثابت تعریف کردم چطور پویاش کنم؟
بهتره مختصات کلیک رو هم مثل مختصات OpenGL نسبی تعریف کنی. یا اینکه از سیستم تشخیص کلیک خود OpenGL استفاده کنی.

http://www.lighthouse3d.com/opengl/p...php?openglway2
http://content.gpwiki.org/index.php/...orials:Picking

البته روشهای پیچیده تر و بهتری وجود دارن که سرعت بیشتری رو هم دارن. مثلا توی ویرایشهای OpenGL 2.0 به بعد بعضی ها از FBO استفاده می کنن و یا معمولا نرم افزاری حرفه ای از Ray picking استفاده می کنن:

http://schabby.de/picking-opengl-ray-tracing/