در درس قبل من به شما ياد دادم که چگونه يک مثلث و يک مربع بر روي صفحه رسم کنيد . در اين درس نحوه اضافه کردن رنگ را در دو حالت مجزا خواهيد آموخت . رنگ آميزي ساده که به حالت رنگ زمينه است و چند ضلعي را به يک رنگ در مي آورد . پخش رنگ ( smooth coloring ) به شما اجازه مي دهد که براي هر راس مثلث يک رنگ تعيين کنيد و يک شکل زيبا را بيافرينيد . از کد درس قبل استفاده مي کنيم . و روال DrawGLScene را تغيير مي دهيم . من متن اين روال را دوباره مي نويسم . مي توانيد کد درس قبل را تغيير دهيد يا همانند ترتيب اين درس تمام روال DrawGLScene را از دوباره بنويسيد . | ||
function DrawGLScene():bool; // Here's Where We Do
All The Drawing
begin
glClear(GL_COLOR_BUFFER_BIT or
GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
glLoadIdentity(); // Reset The View
glTranslatef(-1.5,0.0,-6.0);
glBegin(GL_POLYGON);
اگر درس قبل را به خاطر داشته باشيد ، در اينجا مثلث در نيمه سمت چپ
صفحه رسم مي شود . خط بعدي اولين جايي است که از دستور
glColor3f(r,g,b)
استفاده مي کنيم تا رنگ را به اشکال خود اضافه کنيم . سه
پارامتر داخل پرانتز به ترتيب شدت رنگهاي قرمز ، سبز و آبي را مشخص مي کنند .
مقدار بين 0.0 و 1.0 مي
توانند تغيير کنند مانند حالتي که از ترکيب رنگها براي پاک کردن صفحه استفاده
مي کرديم . | ||
glColor3f(1.0,0.0,0.0); // Set
The Color To Red
glVertex3f( 0.0, 1.0, 0.0);
ما راس اول مثلث را با رنگ قرمز رسم کرديم . حالا پيش از آن که راس دوم را رسم کنيم رنگ را به سبز تغيير مي دهيم . با اين کار راس دوم که در گوشه سمت چپ مثلث قرار دارد با رنگ سبز رسم خواهد شد . | ||
glColor3f(0.0,1.0,0.0); // Set The Color To Green حالا بايد سومين و آخرين راس مثلث
را رسم کنيم . قبل از آن رنگ را به آبي تغيير مي دهيم . پس از دستور
glEnd مثلث به صورت توپر
رسم خواهد شد . ولي به دليل اينکه ما براي هر راس رنگ متفاوتي را انتخاب کرده
ايم رنگها از سمت هر راس پخش خواهند شد . به اين حالت رنگ آميزي
smooth مي گويند . glColor3f(0.0,0.0,1.0); // Set
The Color To Blue حالا مي خواهيم يک مربع با رنگ
يکنواخت آبي رسم کنيم . دوباره يادآوري مي کنم که وقتي رنگي را انتخاب مي کنيد
، تمام اشکالي را که بعد از آن رسم کنيد با همان رنگ رسم خواهد شد . در اين نما
که همه چيز برطبق الگو رسم مي شوند دستور glColor3f
مي تواند براي تغيير رنگ نوشته ها نيز بکار روند .
glColor3f(0.5,0.5,1.0); // Set The Color To Blue One Time Only
در اين درس نحوه رنگ آميزي را فرا گرفتيد . تمرين را فراموش نکنيد . رنگها را تغيير بدهيد تا به رنگ دلخواه خود برسيد . اگر جايي ايرادي مي
بينيد و يا فکر مي کنيد با اضافه و يا کم کردن بخشهايي به خوانايي و يا افزايش
عملکرد برنامه و يا سطح آموزش اضافه مي شود حتماً با
من در ميان بگذاريد
glVertex3f(-1.0,-1.0, 0.0);
glVertex3f( 1.0,-1.0, 0.0);
glEnd();
glLoadIdentity();
glTranslatef(1.5,0.0,-6.0);
بنابراين براي رسم يک مربع که با
فقط يک رنگ پر شده است ما فقط يکبار رنگ مورد نظر خود را مشخص مي کنيم و سپس
مربع را رسم مي کنيم . به دليل اينکه ما براي هر راس يک رنگ را مشخص نمي کنيم
، اين رنگ ( که در اينجا آبي است ) براي تمام رئوس مربع بکار مي رود . نتيحه
نهايي يک مربع آبي خواهد بود . يک چهار ضلعي در جهت حرکت عقربه هاي ساعت رسم
خواهد شد يعني ما ابتدا بالا سمت چپ بعد بالا سمت راست و ... را مشخص مي کنيم .
glBegin(GL_QUADS);
glVertex3f(-1.0, 1.0, 0.0);
glVertex3f( 1.0, 1.0, 0.0);
glVertex3f( 1.0,-1.0, 0.0);
glVertex3f(-1.0,-1.0, 0.0);
glEnd();
DrawGLScene:=true; // Everything Went OK
end;
| دريافت ليست دلفي نوشته شده توسط Peter De Jaegher
| ||
|
درس چهارم -> |
<- درس دوم | |