در جلسه قبل رسم نقطه و خط رو گفتم اما امروز به بقیه ی اشیا میپردازم.
۳- 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
همین !!
اگه میخوای این مطالبو خوب یاد بگیری باید تمرین کنی. از روی نوشته کپی کردن باعث میشه که اصلا چیزی یاد نگیرین. پس سعی کنین:
۱- چهار ضلعی رسم کنین که رنگ آن قرمز باشد. سپس در وسط آن چهار ضلعی یک مثلث به رنگ آبی رسم کنین.
۲- دایره ای رسم کنین که رنگ آن سبز باشد .