تبلیغات

نسل باران

|

بانک شماره و موبایل popup window

قالب های حرفه ای وردپرس

|

پلاگین وردپرس popup window

وب سایت دانشجویان کارشناسی و ارشد کامپیوتر خرم آباد - آموزش مقدماتی opengl
نسل باران
وب سایت دانشجویان کارشناسی و ارشد کامپیوتر خرم آباد
امام علی (ع) می فرمایند: « زکات العلم نشرهُ» زکات علم نشر آن است.
به سایت ما خوش آمدید
در جلسه قبل در مورد توابع glVertex صحبت کردیم و فقط از دوتابع از 24 تابع glVertex استفاده کردیم اما با استفاده از مثالی که در پست قبل زدیم، نمی توانستیم از همه توابع نام برده شده استفاده کنیم چرا؟
چون توابعی مثل glVertex2i فقط اعداد صحیح را قبول می کند و اعدادی مانند 0.1 که اعشاری هستند کاربردی در این تابع ندارند و باعث خطا در برنامه ما می شوند.و اگر از اعداد بزرگتر از 1 استفاده کنیم هیچ نقطه ایی در صفحه ایجاد نمی شد.
برای استفاده از این توابع باید چکار کنیم؟

برنامه زیر رو اجراء کنید .

// Includes Header Files
#include <windows.h>
#include "GL.H"
#include "GLU.H"
#include "glut.h"
// Include Library Files
#pragma comment(lib,"OPENGL32.LIB")
#pragma comment(lib,"glut32.lib")
#pragma comment(lib,"GLU32.LIB")
//****************************
//****************************
void Create_Vertex(void)
{	 
    GLdouble Array_Double[] ={8.0,-8.0};
    GLint Array_Integer[] = {8,8};
		 gluOrtho2D(-10,10,-10,10);
	    glBegin(GL_POINTS);
		   glVertex2f(-8.0,8.0);
		   glVertex2dv(Array_Double);//create point in coordinate (8.0,-8.0)
		   glVertex2i(-8,-8);
		   glVertex2iv(Array_Integer);//create point in coordinate (8.0,8.0)
	    glEnd();
	    glFlush();   
}
///////////////////////////////////
void Display(void)
{    
    glClearColor(0.5,0.5,0.5,1);
    glColor3f(1.0,1.0,0.0);
    glClear(GL_COLOR_BUFFER_BIT); 
    glPointSize(5.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    Create_Vertex();
    glFlush(); 
}
 //************* main **************
int WINAPI  WinMain(HINSTANCE hinstance,
		HINSTANCE hPrevInstance,
		LPSTR argv,
		int argc) 
{ 
    glutInit(&argc, &argv);  // initialize the toolkit
    glutInitDisplayMode(GLUT_RGB);
    glutInitWindowSize(800,600);
    glutInitWindowPosition(150,180);
    glutCreateWindow ("khoramsoft"); // Create the window 
    glutDisplayFunc (Display);// Register the "display" function 
    glutMainLoop (); // Enter the OpenGL main loop 
}

خروجی برنامه:

دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

در این برنامه فقط یک تابع جدید اضافه شده است.تابع gluOrtho2D که برای تعریف ماتریس orthographic یا همون صفحه مختصات دو بعد مورد استفاده قرار می گیرد.(خط 16)
شکل کلی تابع به صورت زیر می باشد:

void gluOrtho2D(GLdouble  left,  GLdouble  right,  GLdouble  bottom,  GLdouble  top);

که در آن مقدار های Left,Right برای تعیین مقدار افقی و Top,Bottom برای تعیین مقدار عمودی مختصات می باشند.

در حالت پیشفرض مقدار آرگومانهای آن به صورت زیر می باشد:


void gluOrtho2D(-1.0, 1.0,  -1.0, 1.0);

با توجه به کد بالا در حالت پیشفرض مقدار آن یک ماتریس 2*2 می باشد. چرا؟

[attachment=659]
وقتی در برنامه بالا ما تعریف کردیم :

  gluOrtho2D(-10,10,-10,10);

منظورمان چیست؟

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


دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.


ما با اینکار یک ماتریس 20*20 را به وجود اورده ایم و می توانیم در محدوده 10.0 تا 10.0- برای متغیرهای اعشاری و در محدوده 10 تا 10- برای متغیرهای صحیح برای آرگومانهای تابع glVertex استفاده کنیم.

تابع gluOrtho یک حالت دیگر دارد ،و با توجه به اینکه فعلاً از آن استفاده نمی کنیم از توضیح آن خوداری می کنیم و در آینده در مباحث سه بعدی به تحلیل آن خواهیم پرداخت.


تمرین:

1- به جای ارگومانها تابع gluOrtho2D مقادیر زیر را وارد نمایید چه اتفاقی می افتد؟

الف:
 gluOrtho2D(0.0,10.0,0.0,10.0); 

ب:

gluOrtho2D(0.5,10.0,5.0,10.0);




نوع مطلب : گرافیک کامپیوتری، opengl، 
برچسب ها :
لینک های مرتبط :

1396/08/12 19:37
وبلاگ بسیار پر انرژی، از آن بسیار لذت بردم.
آیا بخش 2 وجود خواهد داشت؟
1396/06/16 03:15
I just couldn't leave your web site before suggesting that
I actually enjoyed the standard information an individual provide in your
guests? Is gonna be back continuously to check out new posts
1396/02/25 19:16
Hi, i read your blog occasionally and i own a similar one
and i was just wondering if you get a lot of spam comments?

If so how do you protect against it, any plugin or anything you can suggest?

I get so much lately it's driving me crazy so any help is very much
appreciated.
1396/02/25 17:01
Wow, marvelous blog layout! How long have you been blogging for?
you make blogging look easy. The overall look of your website is fantastic,
let alone the content!
1396/01/23 19:01
This is very interesting, You're a very skilled blogger.
I've joined your rss feed and look forward to seeking more
of your wonderful post. Also, I've shared your site in my social networks!
1396/01/20 21:55
Marvelous, what a weblog it is! This web site provides valuable facts to
us, keep it up.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ


امام صادق(ع) می فرمایند: «اِنُّ لِکلِّ شیءٍ زکاةً و زکاةُ العِلمِ اَنْ یُعَلِّمَهُ اَهلَهُ» برای هر چیزی زکاتی است،و زکات علم آن است که آن را به اشخاص شایسته بیاموزید. (منبع: تحف.ص 364)

امام علی (ع) می فرمایند: « زکات العلم نشرهُ» زکات علم نشر آن است.

مدیر وبلاگ : s1390
مطالب اخیر
نویسندگان
صفحات جانبی
آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :
فرم تماس
نام و نام خانوادگی
آدرس ایمیل
امکانات دیگر
دریافت كد ختم صلوات
کلیه حقوق این وبلاگ برای وب سایت دانشجویان کارشناسی و ارشد کامپیوتر خرم آباد محفوظ است