در درس قبل من به شما ياد دادم که چگونه يک مثلث و يک مربع بر روي صفحه رسم کنيد . در اين درس نحوه اضافه کردن رنگ را در دو حالت مجزا خواهيد آموخت . رنگ آميزي ساده که به حالت رنگ زمينه است و چند ضلعي را به يک رنگ در مي آورد . پخش رنگ ( 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
    glVertex3f(-1.0,-1.0, 0.0);
 

 

   
 

حالا بايد سومين و آخرين راس مثلث را رسم کنيم . قبل از آن رنگ را به آبي تغيير مي دهيم . پس از دستور glEnd مثلث به صورت توپر رسم خواهد شد . ولي به دليل اينکه ما براي هر راس رنگ متفاوتي را انتخاب کرده ايم رنگها از سمت هر راس پخش خواهند شد . به اين حالت رنگ آميزي smooth مي گويند .

 
   

    glColor3f(0.0,0.0,1.0); // Set The Color To Blue
    glVertex3f( 1.0,-1.0, 0.0);
  glEnd();
  glLoadIdentity();
  glTranslatef(1.5,0.0,-6.0);
 

 

   
 

حالا مي خواهيم يک مربع با رنگ يکنواخت آبي رسم کنيم . دوباره يادآوري مي کنم که وقتي رنگي را انتخاب مي کنيد ، تمام اشکالي را که بعد از آن رسم کنيد با همان رنگ رسم خواهد شد . در اين نما که همه چيز برطبق الگو رسم مي شوند دستور glColor3f مي تواند براي تغيير رنگ نوشته ها نيز بکار روند .
بنابراين براي رسم يک مربع که با فقط يک رنگ پر شده است ما فقط يکبار رنگ مورد نظر خود را مشخص مي کنيم و سپس مربع را رسم مي کنيم . به دليل اينکه ما براي هر راس يک رنگ را مشخص نمي کنيم  ، اين رنگ ( که در اينجا آبي است ) براي تمام رئوس مربع بکار مي رود . نتيحه نهايي يک مربع آبي خواهد بود . يک چهار ضلعي در جهت حرکت عقربه هاي ساعت رسم خواهد شد يعني ما ابتدا بالا سمت چپ بعد بالا سمت راست و ... را مشخص مي کنيم .

 
   

 

  glColor3f(0.5,0.5,1.0); // Set The Color To Blue One Time Only
  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

 

درس چهارم ->

<- درس دوم