PDA

View Full Version : درخواست تابع جابه جایی در OpenGL



mg_mahyar
جمعه 18 اردیبهشت 1388, 20:02 عصر
من میخواستم بدون تابعی برای opengl هست که با موس کار کنه و بشه شکل رو انتخاب کرد و بعد با حرکت موس اونم حرکت کنه؟
میخوایم کشیده بشه روی صفحه نه با هر کلیک یکی جلو یا عقب بره.
http://pyopengl.sourceforge.net/documentation/manual/glTranslate.3G.html

اینو خودم دیدم ولی با موس نیست.:گریه:اگه کسی میدونه بهم بپه ممنون میشم

pswin.pooya
یک شنبه 20 اردیبهشت 1388, 00:43 صبح
بحث selection and pickup رو داخل super bible نگاه بنداز. البته راه حلهای بهتری هم وجود داره مثلا من خودم یه شیدر سریع نوشتم و با rtt اینکار رو انجام میدم.

OGL خودش برای اینکار یک بافر به نام بافر انتخاب (selection) داره و یکسری از پستورات که با اون کار می کنن. اما من ازش خوشم نمیاد (سلبقه شخصی).:
http://glprogramming.com/red/chapter13.html

mg_mahyar
یک شنبه 20 اردیبهشت 1388, 13:11 عصر
اقا ممنون دیدم ولی کلا این دستور ازم ارور میگیره.

توی اون جزوه اقای مهریزی هم که گزاشتی بود یه
چیزایی ولی اونم ارور میداد. اگر برنامه تست کرده داری بزاری ممنون میشم. مثلا یک خط یا نقطه یا هر چیزی رو بشه تکون داد.
اگه داری بزاری ممنون میشم
اینجا توی این مبحث امیدمون به شماست. :بوس:

pswin.pooya
یک شنبه 20 اردیبهشت 1388, 20:20 عصر
خوب شما ارور رو بگید تا بگیم مشکل کجاست.
راستی از #pragma توی کدت استفاده کردی. منظورم اینه که فایلهای lib رو معرفی کردی. اون جزوه دکتر مهری هم مشکلی نداره من خودم از روی اون شروع به یاد گرفتن کردم.

mg_mahyar
دوشنبه 21 اردیبهشت 1388, 01:58 صبح
آقا نمیدونم ارور چیه ولی سه تا ایراد مسخره داره اولا بگم من با ویزوال استدیو 2005 کار میکنم
ولی ایرادات: توی اون جزوه و سوپر بایبل از دستورایتی استفاده شده ولی تقدم و تاخر رو نگفته. مثلا گفته دو تا تابع برای موس باید بپیرم وکجا؟ قبل از رندر یا بعد؟ اینو فقط توی یک تمرین مریشه دید که قبلا اجرا شده.
دومی از هدر فایل math.h استفاده کره ازم ارور نمیگیره ولی وقتی اینو ادد میکنم به برنامه کلا وقتی ران میکنم برنامه رو تا ببنیم درست اجرا میشه یا نه یک صفحه باز میکنه و post fix و متغییر ها و استک رو ایراد میگیره ولی من اصلا استک ندارم. و بدون اون هدر فایلم مشکلی ندارم توی متغییر هام.
مورد سومی هم اینه وقتی از دستورات استفاده میکنم کلا بعضی کارا برنامه که ربطی به اون تابع نداره خراب میشه. مثلا وقتی حرکت موس رو به رنگ قرمز وصل میکنم. دایره و خط رسم نمیشه.

منم نگفتم جزوه ایراد داره. ولی من نمیتونم کامپایلش کنم. اگر بررنامه داری که حرکت موس رو به هر نحوی یه جابه جا کردن شی یا اتصال یک متغییر و تغییر اون به موس رو بهم بدی ممنون میشم. فقط اگه ممکنه از هدر فایل math.h استفاده نکن که ارور برام میگیره. توی جزوه آقای مهریزی گفته بود که رنگ قرمز با حرکت موس تغییر میکنه ولی اونو توی برنامم کزاشتم هیچ واکنشی نداشتم.
در مورد انتخاب اشیا هم این مورد رو دارم.
احتمالا مکان تعریف من ایراد داره. اگر یک مورد داشه باشی که رنگ تغییر کنه با تغییر مختصات موس و یکی هم تغییر مکان یک شکل با موس خیلی خوب میشه. و یک دنیا ممنونت. اگرم کمک نکنی همین که تا اینجا بخم کمک کردی کلی ممنونتم چون اگه کمک قبلیت نبود اصلا کارم به این سوالا نمیکشید و توی کوچه اول میموندم.

pswin.pooya
دوشنبه 21 اردیبهشت 1388, 11:29 صبح
از سایت nehe.gamdev.net و codesampler.com میتونی مثالها رو بر داری. تو اون سایت مثالهای زیادی هستش. هر ارروی داخل ویژوال استادیو یک کد خطا و یک توضیح داره اگه اونها رو بذاری میتونیم بگیم مشکل از کجاست

mg_mahyar
دوشنبه 21 اردیبهشت 1388, 12:37 عصر
از سایت nehe.gamdev.net و codesampler.com میتونی مثالها رو بر داری. تو اون سایت مثالهای زیادی هستش. هر ارروی داخل ویژوال استادیو یک کد خطا و یک توضیح داره اگه اونها رو بذاری میتونیم بگیم مشکل از کجاست
آقا مشکل اینه که خطا نمیده. ولی کامپایل هم نمیکنه. هر چی نوشته من میزارم. تنها فرقی که این ارورو رو میده اضافه کردن هدر فایل math.h هست به برنامه همین و بس



1>------ Rebuild All started: Project: graphic1, Configuration: Debug Win32 ------
1>Deleting intermediate and output files for project 'graphic1', configuration 'Debug|Win32'
1>Compiling...
1>Graphic 1 project_half.cc
1>d:\samples\graphic 1 project_half.cc(7) : error C2365: 'y0' : redefinition; previous definition was 'function'
1> c:\program files\microsoft visual studio 8\vc\include\math.h(459) : see declaration of 'y0'
1>d:\samples\graphic 1 project_half.cc(7) : error C2365: 'y1' : redefinition; previous definition was 'function'
1> c:\program files\microsoft visual studio 8\vc\include\math.h(460) : see declaration of 'y1'
1>d:\samples\graphic 1 project_half.cc(29) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(29) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(29) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(29) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(38) : error C2296: '+' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(38) : error C2296: '+' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(39) : error C2296: '+' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(39) : error C2296: '-' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(40) : error C2296: '-' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(40) : error C2296: '-' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(41) : error C2296: '-' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(41) : error C2296: '+' : illegal, left operand has type 'double (__cdecl *)(double)'
1>d:\samples\graphic 1 project_half.cc(48) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(48) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(51) : error C2664: 'glVertex2f' : cannot convert parameter 2 from 'double (__cdecl *)(double)' to 'GLfloat'
1> Context does not allow for disambiguation of overloaded function
1>d:\samples\graphic 1 project_half.cc(60) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'double (__cdecl *)(double)' (or there is no acceptable conversion)
1> c:\program files\microsoft visual studio 8\vc\include\istream(1137): could be 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1139): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1141): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1143): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(155): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(161): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(168): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(175): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(194): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(228): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(247): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(273): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(291): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(309): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(329): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(348): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(367): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(386): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(404): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(422): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(441): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> while trying to match the argument list '(std::istream, double (__cdecl *)(double))'
1>d:\samples\graphic 1 project_half.cc(62) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'double (__cdecl *)(double)' (or there is no acceptable conversion)
1> c:\program files\microsoft visual studio 8\vc\include\istream(1137): could be 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1139): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1141): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(1143): or 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(155): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(161): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(168): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(175): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(194): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(228): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(247): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(273): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(291): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(309): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(329): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(348): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(367): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(386): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(404): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(422): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\istream(441): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> while trying to match the argument list '(std::istream, double (__cdecl *)(double))'
1>Build log was saved at "file://d:\Projects vs2005\graphic1\graphic1\Debug\BuildLog.htm"
1>graphic1 - 19 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

mg_mahyar
دوشنبه 21 اردیبهشت 1388, 12:52 عصر
یه مطلب دیگه هم این که ان سایتا یکیشون عذبیه و هیچی جز تبلیغات بهم نداد.
اون یکی هم فقط بک گراندش که سیم و داخل سی چیو بوذ لوذ شد و دیگه چیزی نشون نداد.تازه سرعتم 512 هست وضعم اینه

mg_mahyar
دوشنبه 21 اردیبهشت 1388, 14:50 عصر
تابع رو برای چرخش و جتبه جایی یافتم الان اگر فقط ایراد هدر فایلمو بگی ممنون میشم

mg_mahyar
دوشنبه 21 اردیبهشت 1388, 14:51 عصر
خوب شما ارور رو بگید تا بگیم مشکل کجاست.
راستی از #pragma توی کدت استفاده کردی. منظورم اینه که فایلهای lib رو معرفی کردی. اون جزوه دکتر مهری هم مشکلی نداره من خودم از روی اون شروع به یاد گرفتن کردم.
نه از این کد استفاده نکردم. اصلا اولین باره میشنوم
من فایلای رو توی لایبری ریختم اون 3 تا فایل رو.
بعدم اینکلود کردم.
اینو نمیدونم چیه اصلا:گیج:

pswin.pooya
دوشنبه 21 اردیبهشت 1388, 18:13 عصر
سلام
پارامترهایی رو که بستور glVertex میفرستی باید به صورت 0.1f باشند یعنی همراهشون f باشه. به جای include کردن math.h از

#include <cmath>

استفاده کن.

اول برنانت کد زیر رو اضافه کن


#pragma comment(lib,"opengl32.lib")
#pragma comment (lib."glut32.lib")

اینم نمونه کدهای nehe:
http://nehe.gamedev.net/lesson.asp?index=02

پایین هر مثال nehe لینک دانلود برای کامپایلرها و محیطها مختلف گداشته شده که حتی تو یکسری از مثالها لینک vb هم وجود داره.

اگه به ارورها نگاه کنی. فکر کنم شما تنها با هدرها مشکل دارین. معمولا این مشکل بر میگرده به نحوه ایجاد پروژه که فایل زیر میتونه کمکتون کنه:
http://comtabriz.blogfa.com/post-3.aspx

pswin.pooya
دوشنبه 21 اردیبهشت 1388, 18:24 عصر
اینم لینک مثالهای codesampler:
http://www.codesampler.com/oglsrc.htm

mg_mahyar
دوشنبه 21 اردیبهشت 1388, 21:39 عصر
:قلب:آقا ممون از شما
بله من همیشه با هدر فایلا مشکل دارم.
آخه دستورات توی کتابها مفصل بحث میشه ولی هدر فایلا از کامپایلر به کامپایلر فرق میکنه و با یک نقطه این ور اون ور اشتباه میشه.

به هر حال خیلی ممنون. ایشالا هیچ وقت به مشکل بر نخورید. ولی اگر خوردی امیدوارم من کسی باشم که کمکت میکنه

mg_mahyar
دوشنبه 21 اردیبهشت 1388, 22:05 عصر
سلام
پارامترهایی رو که بستور glVertex میفرستی باید به صورت 0.1f باشند یعنی همراهشون f باشه. به جای include کردن math.h از

#include <cmath>

استفاده کن.

اول برنانت کد زیر رو اضافه کن


#pragma comment(lib,"opengl32.lib")
#pragma comment (lib."glut32.lib")

اینم نمونه کدهای nehe:
http://nehe.gamedev.net/lesson.asp?index=02

پایین هر مثال nehe لینک دانلود برای کامپایلرها و محیطها مختلف گداشته شده که حتی تو یکسری از مثالها لینک vb هم وجود داره.

اگه به ارورها نگاه کنی. فکر کنم شما تنها با هدرها مشکل دارین. معمولا این مشکل بر میگرده به نحوه ایجاد پروژه که فایل زیر میتونه کمکتون کنه:
http://comtabriz.blogfa.com/post-3.aspx


من تغیرات رو دادم ولی بازم همون ارور رو دارم:


include <windows.h>
#include <iostream>
#include <GL/glut.h>
#include <cmath>
using namespace std;
#pragma comment(lib,"opengl32.lib")
#pragma comment (lib."glut32.lib")
int m_draw;float r;
float x0,x1,y0,y1;




if (m_draw==2)//circle
{int d;r=sqrtf((x1*x1)+(y1*y1));
int x=0,y=r;
d=3-(2*r);
while(x<=y)
{glBegin(GL_POINTS);
glVertex2i(x0+x,y0+y);glVertex2i(x0+y,y0+x);
glVertex2i(x0-x,y0+y);glVertex2i(x0+y,y0-x);
glVertex2i(x0-x,y0-y);glVertex2i(x0-y,y0-x);
glVertex2i(x0+x,y0-y);glVertex2i(x0-y,y0+x);
glEnd();
if (d<0){d+=(4*x)+6;}
else {d+=(4*(x-y))+10;y-=1;}x++;}
}


دارم خل میشم. این تیکه ارور برنامه هست با اضافه کردن همون هدر فایل و تابع جزر پرفتن از اون:گیج:

یه مطلبی در مورد پزاشتن حرف f گفتید. برای متغیر ها هم بزارم یعنی x0+x به x0+xf تبدیل کنم؟ یا فقط برای عدد ها؟

pswin.pooya
دوشنبه 21 اردیبهشت 1388, 23:42 عصر
یه دونه از ایرادات استفاده کردن از دستور glVertexi به جای دستور glVertexf هستش. اگر از مقادیر اعشاری استفاده می کنی باید از دستور glVertex2f استفاده کنی.

#pragma cooment رو هم جدا بنویس. و همینطور using namespace

در مورد f هم فقط عددها ، البته توی ویژوال استادیو ضروری نیستش:
glVertex2f(0.5f,0.2f);


راستی رنگ رو هم تعیین کن و گرنه هیچ چیزی نمی بینی مثلا رنگ زرد:
glColor3f(1,1,0);

mg_mahyar
چهارشنبه 23 اردیبهشت 1388, 15:42 عصر
یه دونه از ایرادات استفاده کردن از دستور glVertexi به جای دستور glVertexf هستش. اگر از مقادیر اعشاری استفاده می کنی باید از دستور glVertex2f استفاده کنی.

#pragma cooment رو هم جدا بنویس. و همینطور using namespace

در مورد f هم فقط عددها ، البته توی ویژوال استادیو ضروری نیستش:
glVertex2f(0.5f,0.2f);


راستی رنگ رو هم تعیین کن و گرنه هیچ چیزی نمی بینی مثلا رنگ زرد:
glColor3f(1,1,0);
رنپ تعیین شده
مقادیرم صحیح است. نه اعشاری که نیاز به f باشه.
کلا برنامه درست کار میکنه مشک از وقتی میشه هدر فایل اضافه میکنم

#pragma cooment
دقیقا چی کار میکنه؟
اینو بگار نبردم

pswin.pooya
پنج شنبه 24 اردیبهشت 1388, 00:01 صبح
#pragma comment برای اضافه کردن فایل lib هستش که تو زمان لینک برنامه لازمه که اگر نباشه لینکر پیغام خطا میده

mg_mahyar
پنج شنبه 24 اردیبهشت 1388, 18:07 عصر
#pragma comment برای اضافه کردن فایل lib هستش که تو زمان لینک برنامه لازمه که اگر نباشه لینکر پیغام خطا میده
:افسرده:
:افسرده:
بد تر شد از اونم ایراد گرفت

pswin.pooya
پنج شنبه 24 اردیبهشت 1388, 18:27 عصر
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glut32.lib")
#pragma comment (lib,"glu32.lib")

من این شکلی استفاده میکنم اگه بازم ارور بده دیگه نمی دونم باید چی کار کرد. لیست دقیق ارورها رو نگاه کن. اگه ارورها مربوط به لینکر باشن که یا تو برنامه خطا داری و یا اینکه dll ها و فایلهای lib رو درست کپی نکردی و اگر به غیر از این باشه یعنی اینکه تو برنامه نویسی مشکل داشتی

mg_mahyar
پنج شنبه 24 اردیبهشت 1388, 21:46 عصر
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glut32.lib")
#pragma comment (lib,"glu32.lib")

من این شکلی استفاده میکنم اگه بازم ارور بده دیگه نمی دونم باید چی کار کرد. لیست دقیق ارورها رو نگاه کن. اگه ارورها مربوط به لینکر باشن که یا تو برنامه خطا داری و یا اینکه dll ها و فایلهای lib رو درست کپی نکردی و اگر به غیر از این باشه یعنی اینکه تو برنامه نویسی مشکل داشتی
اخه فکر کنم مشکل پیدا شد.
من کتابخونه
math رو میخوام اضافه کنم ایراد میگیره. اینا که بالا دادی درستن

mg_mahyar
یک شنبه 27 اردیبهشت 1388, 16:21 عصر
کسی نمیدونه چطوری میتونم ار توابه سینوس و رادیکال در ویژوال استدیو 2005 همراه opengl استفده کنم؟

mosi98
سه شنبه 21 آذر 1391, 09:17 صبح
سلام اینم کد درگ کردن با موسه که خودم نوشته یودم برا تمرین کلاسی.امیدوارم به کارت بیاد

mosi98
سه شنبه 28 آذر 1391, 19:25 عصر
سلام دوستان
چطور میشه تو opengl متن فارسی قرار داد.در پنجره خروجی opengl