آموزش تخصصی ویژوال بیسیک 6

مسائل مربوط به برنامه نویسی ویژوال بیسیک 6

آموزش تخصصی ویژوال بیسیک 6

مسائل مربوط به برنامه نویسی ویژوال بیسیک 6

آموزش opengl قسمت سوم

در جلسه قبل رسم نقطه و خط رو گفتم اما امروز به بقیه ی اشیا میپردازم.

۳- bmTriangles رسم مثلث:

برای رسم مثلث های گوناگون ( متساوی ها و قائم الزاویه ها و ...) از تابع glBegin با دادن ثابت bmTriangles میتوانیم بعد از فراخوانی سه تابع glVertex2f (که رئوس اضلاع مثلث را شامل میشوند) مثلث مورد نظر را رسم کنیم.

در مثال زیر یک مثلث با رنگ آبی در وسط فرم نمایش داده میشود.

glBegin bmTriangles

glcolor3f 0, 0, 1

glvertex2f 0.5 , 0

glvertex2f 0 , 0.5

glvertex2f -0.5 , 0

glEnd

شاید با تابع glColor3f آشنا نباشید. تابع glColor3f باعث میشود که رنگ مورد نظر برای اشیا را مشخص کنیم. تابع glColor#f که # در آن از ۳ تا ۴ میباشد رنگ مورد نظر را تایین میکند. در ادامه درباره این تابع بیشتر صحبت میکنم.

حتما مثال هایی که میزنم رو اجرایی کنین.



--------------------------------------------------------------------------------


۴- bmQuads رسم چهار ضلعی ها (از جمله لوزی / مربع / مستطیل / ذوزنقه و سایر چهار ضلعی ها):

برای رسم چهار ضلعی ها مانند رسم سایر اشیا از تابع glBegin استفاده میکنیم و مقدار Mode تابع glBegin را برابر bmQuads می کنیم. در مثال زیر یک مستطیل در نیمه ی بالایی فرم رسم میکنیم:

glBegin bmQuads

glcolor4f 0,1,0 ,0

glVertex2f 0.5 , 0

glvertex2f 0.5 , 0.5

glvertex2f -0.5 , 0.5

glvertex2f -0.5 , 0

glEnd

همان طور که در مثال بالا می بینید ما برای رسم مستطیل از چهار تابع glVertex2f استفاده کرده ایم. دلیل استفاده از تابع glVertex تایین رئوس اضلاع مستطیل است.



--------------------------------------------------------------------------------


۵- bmPolygon رسم چند ضلعی:

برای رسم چند ضلعی باید بعد از فراخوانی تابع glBegin از ثابت bmPolygon استفاده کنیم . برای رسم چند ضلعی ها ما میتوانیم در داخل بلوک glBegin/glEnd به تعداد دلخواه تابع glVertex فراخوانی کنیم چرا که تعداد اضلاع به تعداد توابع glVertex بستگی دارد.

در مثال زیر یک ۶ ضلعی بارنگ قرمز رسم میکنیم.

glBegin bmPolygon
glColor3f 1, 0, 0
glVertex2f 0.5, 0
glVertex2f 0.3, 0.5
glVertex2f -0.3, 0.5
glVertex2f -0.5, 0
glVertex2f -0.3, -0.5
glVertex2f 0.3, 0.5
glEnd

امیدوارم تا اینجا خوب یاد گرفته باشی ولی اگه احیانآ مشکلی پیش اومد بگو خجالت نکش.من خدا خدا میکنم که یه سایت یا وبلاگ به سوالات من جواب بده ولی... .



--------------------------------------------------------------------------------


و اما رسم دایره:

شما میتونین برای رسم دایره به کمک تابع glBegin و ثابت bmPolygon دایره رسم کنین ولی تعداد خطوطی که باید کد بنویسین خیلی زیاد میشه.

Open GL برای رسم دایره از یک کتابخانه کمکی به نام glu استفاده میکنه.(نگران نباشید این کتابخانه در تمامی کامپیوتر ها وجود داره و نیازی به کپی کردن اون به کامپیوتر خودتون نیست. چه خوب)

در ادامه چگونگی رسم دایره را به شما دوستان عزیزم میگم.

برای رسم دایره دیگر نمیتوانیم از تابع glBegin استفاده کنیم زیرا تابع glBegin ثابتی ندارد که بتواند دایره رسم کند. پس:

برای رسم دایره شما ابتدا باید یک متغیر از نوع Variant تعریف کنید:

Dim Q as Variant

بعد از تعریف کردن متغیر باید اون رو برای رسم دایره آماده کنین به این صورت:

Q = gluNewQuadric

بعد باید رنگ مورد نظر خودتون رو به دایره بدین:

glColor3f 0,0,1

بعد از اون هم باید چگونگی نمایش دایره رو مشخص کنیم( این موضوع برای استفاده سه بعدی کاربرد دارد و من در جلسه بعد به توضیح این تابع میپردازم اما بد نیست که بهتر با تابع آشنا بشین.)

gluQuadricDrawStyle Q , qdsLine

در ادامه نیز به رسم دایره میپردازیم:

gluSphere Q , 0.5 , 20 , 20

بعد هم برنامه را اجرا میکنیم و نتیجه را می بینیم.

مثال بالا در کل به این صورت است:

Dim Q

Q = gluNewQuadric

glcolor3f 0 , 0 , 1

gluQuadricDrawStyle Q , qdsLine

gluSphere Q , 0.5 , 20 , 20

همین !!

اگه میخوای این مطالبو خوب یاد بگیری باید تمرین کنی. از روی نوشته کپی کردن باعث میشه که اصلا چیزی یاد نگیرین. پس سعی کنین:

۱- چهار ضلعی رسم کنین که رنگ آن قرمز باشد. سپس در وسط آن چهار ضلعی یک مثلث به رنگ آبی رسم کنین.

۲- دایره ای رسم کنین که رنگ آن سبز باشد .
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد