میهن داکیومنت                میهن داکیومنت                      میهن داکیومنت              میهن داکیومنت

مرکز دانلود پایان نامه ، پروژه ، روش تحقیق ، مقاله 


میهن داک - میهن داکیومنت

آموزش محیط گرافیکی در توربو پاسکال 7


کد محصول : 10001043 نوع فایل : word تعداد صفحات : 15 صفحه قیمت محصول : رایگان تعداد بازدید 224

دانلودرایگان فایل رمز فایل : m3d1043

فهرست مطالب و صفحات نخست


آموزش محیط گرافیکی در توربو  پاسکال 7

 براي برنامه نويسي در محيط گرافيكي نياز به مقدماتي براي ورود به محيط گرافيك است . اولين خط هر برنامه گرافيكي بعد از دستور Program ، فرمان زير است :
Uses graph ;
با استفاده از دستور uses برنامه شما مي تواند از پيمانه ها و ثوابت توربو پاسكال استفاده كند . اين ثوابت و پيمانه ها در فايلي كه يك unit ناميده مي شود جاي مي گيرند . كدي كه در حالت گرافيكي توسط كامپيوتر توليد مي شود ، به نوع كامپيوتر بستگي دارد . بنابراين نوع سخت افزار گرافيكي كه در اختيار سيستم است بايد به توربو پاسكال اعلام شود . براي اين كار از دو متغير Driver و Mode بصورت زير استفاده مي شود :
Var
  Driver , Mode : Integer ;
محتواي اين دو متغير نوع سخت افزارهاي گرافيكي سيستم را مشخص مي كند . براي تعيين حالت گرافيكي از دستور زير استفاده مي شود :
InitGraph (Driver, Mode, ‘…….’) ;
رويه InitGraph سيستم گرافيكي شما را بررسي كرده و سپس در متغيرهاي Driver و Mode مقادير مناسب را قرار مي دهد . پارامتر رشته اي ‘……’ شاخه اي را مشخص مي كند كه در آن نرم افزار كنترل سيستم گرافيكي شما وجود دارد . رشته اي كه بدون كاراكتر است ‘ ‘ به اين معناست كه اين نرم افزار در شاخه جاري قرار دارد .
اين نرم افزار همواره در شاخه BGI قرار دارد و معمولا" در محلي است كه برنامه توربو پاسكال نصب شده است . بنابراين بايد آدرس شاخه BGI را بجاي اين رشته بنويسيم . براي انعطاف پذير شدن برنامه و قابليت اجراي آن روي سيستم هاي مختلف معمولا" يك نسخه از شاخه BGI را در شاخه اي كه برنامه در آن قرار دارد ، كپي مي كنيم .
صفحه نمايشي كه مانند يك صفحه مختصات است :
در برنامه نويسي گرافيكي موقعيت هر خط يا هر شكلي را كه روي صفحه نمايش رسم مي كنيد ، بايد كنترل كنيد . صفحه نمايش را در محيط گرافيكي بصورت مختصات X-Y تعدادي نقطه مي توان در نظر گرفت . در اكثر نمايشگرها ابعاد متداول عبارتند از : 200×320 ، 350×640 ، 480×640 . كه معمولا" تعداد نقاط در محور X ها بيشتر است .
توابع GetMaxX و GetMaxY در توربو پاسكال، به ترتيب حداكثر تعداد نقاط در Xها و Yها را برمي گردانند . بنابراين براي بدست آوردن ابعاد واقعي نمايشگر خود مي توانيد از اين توابع بصورت زير استفاده كنيد :              
 MaxX := GetMaxX ;             MaxY := GetMaxY ;
مختصات گوشه های صفحه نمایش به صورت زیر است.
 
براي برگرداندن برنامه به حالت متني از دستور زيراستفاده مي كنيم .
CloseGraph ;
رنگ زمينه و متن :
بطور پيش فرض براي رنگ هاي زمينه و متن ، به ترتيب از سياه و سفيد استفاده مي شود . دستورات زير امكان تغيير رنگ زمينه و متن را فراهم مي كنند .
SetBkColor (….) ;                  تعيين رنگ زمينه
SetColor (….) ;                         تعيين رنگ متن 
براي انتخاب رنگها از ثوابت رنگي يا معادل عددي رنگها طبق جدول زير استفاده مي شود :
 
ثابت    مقدار    ثابت    مقدار
Black    0    DarkGray    8
Blue    1    LightBlue    9
Green    2    LightGreen    10
Cyan    3    LightCyan    11
Red    4    LightRed    12
Magenta    5    LightMagenta    13
Brown    6    Yellow    14
LightGray    7    White    15
 
خلاصه اي از توابع و رويه هاي گرافيكي :
•                Line (X1, Y1, X2, Y2) ;
بين نقاط (X1,Y1) و (X2,Y2) خطي رسم مي شود .
•        Rectangle (X1, Y1, X2, Y2) ;
مستطيلي كه قطر آن بين نقاط (X1,Y1) و (X2,Y2) است مي كشد .
•        Circle (X, Y, R) ;
دايره به مركز (X,Y) و شعاع R رسم مي كند .
•        Arc (X, Y, Angle1, Angle2, R) ;
كماني از زاويه Angle1 تا Angle2 و به مركز (X,Y) و شعاع R رسم مي كند .
•        SetFillStyle (FilPat, FilCol ) ;
براي رنگ آميزي قسمتهايي از صفحه نمايش با رنگهاي مختلف از اين رويه استفاده مي شود تا نوع رنگ و نحوه رنگ آميزي مشخص شود .
الگوهاي رنگ آميزي و رنگها با توجه به جدول زير انتخاب مي شوند ، در اين رويه هم از نام ثابت و هم از معادل عددي مي توانيد استفاده كنيد .
تا زمانيكه بار ديگر اين رويه را فراخواني نكنيد ، اين حالت فعال خواهد بود .
ثابت    معادل عددي    الگوي رنگ آميزي    ثابت    معادل عددي    الگوي رنگ آميزي
EmptyFill2    0    رنگ زمينه    LtBkSlashFill    6    \ \ \ \ (بافاصله)
SolidFill    1    بصورت توپر    HatchFill    7    هاشور
LineFill    2    - - - -    XhatchFill    8    متقاطع
ItSlashFill    3    / / / / (بافاصله)    InterLeaveFill    9    خط در ميان
SlashFill    4    //// (بدون فاصله)    WidDotFill    10    نفطه اي (بافاصله)
BslashFill    5    \\\\ (بدون فاصله)    CloseDotFill    11    نقطه اي(بدون فاصله)
 
•       
FloodFill (X, Y, Border) ;
محدوده اي را كه حاوي نقطه (X,Y) است و با خطوطي به رنگ Border محصور شده است ، با الگوي جاري رنگ آميزي مي كند .
•        Bar (X1, Y1, X2, Y2) ;
مستطيلي توپر مي كشد كه قطر آن بين نقاط (X1,Y1) و (X2,Y2) است .
•        PieSlice (X, Y, Angle1, Angle2, R) ;
يك برش دايره توپر مي كشد كه از زاويه Angle1 شروع شده و به Angle2 ختم مي شود و داراي مركز (X,Y) و شعاع R مي باشد .
•        OutTextXY (X, Y, TextString) ;
در نقطه (X,Y) كاراكترهاي رشته TextString را چاپ مي كند .
v    برنامه زير يك نمونه از برنامه نويسي ساده گرافيكي را نشان مي دهد .
uses graph;
procedure HappyFace(MidX,MidY:integer);
var
HeadRadius:integer;
begin
   HeadRadius:=GetMaxY div 4;
   Circle (MidX, MidY, HeadRadius);
end;
 
var               
   Driver,Mode,MidX,MidY:integer;
begin
   InitGraph (Driver, Mode, ' ');
   MidX:=GetMaxX div 2;
   MidY:=GetMaxY div 2;
   HappyFace(MidX,MidY);
   OutTextXY(230, 400, '!!! Press Any Key !!!');
   readln;
   CloseGraph;
end.
نقاشي متحرك گرافيكي :
اگر يك رويه گرافيكي داراي پارامتر باشد ، مي توان موقعيت يك شكل را تغيير داد و يا آن شكل را در چند نقطه از صفحه نمايش رسم كرد . علاوه بر اين مي توان يك شكل را متحرك ساخت . اين كار به اين صورت انجام مي شود كه ابتدا شكلي در نقطه خاصي از صفحه نمايش رسم مي شود ، سپس از آن نقطه پاك شده و در محل ديگري رسم مي شود . با تكرار اين عمل شكل مورد نظر متحرك به نظر مي رسد .
براي تعيين سرعت حركت از يك تأخير زماني بين دفعات رسم شكل استفاده مي كنيم . براي ايجاد اين تأخير مي توان از رويه Delay (DelayTime) استفاده كرد . عدد DelayTime بر اساس ميلي ثانيه بيان مي شود و البته براي استفاده از اين تابع بايد  واحد Crt را با فرمان uses Crt در ابتداي برنامه فراخواني كنيد .
v    در مثال بعد با استفاده از روش گفته شده ، شكل رسم شده در مثال قبل را متحرك مي كنيم.
var
   Driver,Mode,MidX,MidY:integer;
begin
   InitGraph (Driver, Mode, ' ');
   MidX:=0;
   MidY:=0;
   while ((MidX<GetMaxX) and (MidY<GetMaxY)) do
     begin
       HappyFace(MidX,MidY);
       MidX:=MidX+50;
       MidY:=MidY+50;
       Delay(50);
       SetFillStyle(3,4);
       Bar(0,0,639,479);
     end;
   OutTextXY(230, 400, '!!! Press Any Key !!!');
   readln;
   CloseGraph;
end.
 
دستور كار (1 )
در محيط گرافيك توربو پاسكال برنامه اي بنويسيد كه اشكال زير را در خروجي رسم كند . سعي كنيد توابع را طوري بنويسيد كه با دريافت مختصات يك نقطه از شكل مثلا" مركز آن ، تمام شكل را رسم كند . (مانند مثال مطرح شده در جزوه) سعي كنيد تمام مختصات لازم براي رسم اشكال را با فرمول بدست آوريد و تا حد امكان از استفاده مستقيم از اعداد خودداري كنيد .
 
دستور كار (2 )
در محيط گرافيك توربو پاسكال برنامه اي بنويسيد تا اشكال زير را به ترتيب و بصورت متحرك نمايش دهد. سرعت حركت آدمك بايد به گونه اي باشد كه بين مرحله اول تا آخر 2 ثانيه طول بكشد. نيازي به جابجايي خانه ها وجود ندارد ، برنامه را طوري بنويسيد كه آدمك از يك خانه بيرون بيايد و دوباره در همان خانه فرو برود . تابع رسم آدمك بايد به گونه اي باشد كه با دريافت مختصات يك نقطه مشخص (مركز خانه) آدمك را رسم كند و هر بار با كم يا زياد كردن مختصات اين نقطه آدمك را در محل جديدي رسم كند .
 
 
دستور كار (3 )
برنامه اي بنويسيد كه پنجره زير را رسم كند . براي طرح پنجره ها و رنگها به دلخواه تصميم بگيريد.
 
دستور كار (4 )
با استفاده از تابعي كه در دستور كار (2) نوشته ايد ، برنامه اي بنويسيد كه آدمك را به طور تصادفي در خانه هاي پنجره شماره يك ظاهر كند . به اين ترتيب كه با يك تابع شماره خانه اي را كه آدمك بايد در آن ظاهر شود ، به طور تصادفي توليد كنيد و سپس مختصات مركز آن خانه را به تابع رسم آدمك بدهيد . اين كار بايد تا زماني ادامه پيدا كند كه 10 بار آدمك در خانه هاي مختلف ظاهر و سپس ناپديد شود . تابع حركت آدمك را بدون استفاده از Delay  بنويسيد .  براي ايجاد حالت متحرك بعد از هر بار رسم آدمك پنجره شماره 1 بايد مجددا" رسم شود .
 
دستور كار (5 )
برنامه اي بنويسيد كه ماوس را در پنجره شماره 2 فعال كند و محل كليك كردن ماوس را مشخص كند . بطوريكه اگر كاربر در هر محلي از يك خانه كليك كند برنامه شماره آن خانه را بعنوان خروجي برگرداند . مثلا" اگر كاربر در هر نقطه اي از خانه شماره 1 كليك كند برنامه عدد يك را بعنوان خروجي برگرداند .
 
دستور كار (6 )
برنامه اي را كه در دستور كار (4) نوشته ايد طوري تغيير دهيد كه اگر در زمان حركت آدمك ، كاربر ماوس را در هر كدام از خانه هاي پنجره شماره 2 كليك كند ، آدمك بعدي ظاهر شود . يعني با هر بار كليك ماوس بازي به مرحله بعدي برود .
 
دستور كار (7 )
برنامه دستور كار (6) را به گونه اي تغيير دهيد كه تشخيص دهد آيا شماره خانه اي كه ماوس در آن كليك شده ، با شماره خانه اي كه آدمك در آن حركت مي كرده يكسان است يا نه ؟ در صورت يكسان بودن شماره ها يك امتياز مثبت و در صورت يكسان نبودن يك امتياز منفي به كاربر بدهيد .
پروژه نهايي :
بازي كامپيوتري طراحي شده در طول ترم را تكميل كنيد به نحوي كه بعد از هر بازي امتياز كاربر را نمايش دهد .
 
امكانات اضافي :
1- استفاده از طرحها و رنگهاي متنوع در طراحي پنجره ها ، خانه ها و آدمكهاي بازي .
2- ايجاد پنجره اي مخصوص نمايش امتياز كاربر در هر مرحله و در انتهاي بازي .
3- استفاده از امكانات صوتي در مراحل مختلف بازي مثل شروع بازي ، پايان بازي ، انتخاب خانه صحيح ، انتخاب خانه غلط ، ظاهر شدن آدمك جديد ، ناپديد شدن آدمك متحرك .
4- طراحي صفحه متحرك براي شروع و پايان بازي .
5- ...
 


منابع :


دانلود پایان نامه,خرید پایان نامه,فروش پایان نامه,پایان نامه,آرشیو پایان نامه,پایان نامه عمران,پایان نامه روانشناسی,

پایان نامه حقوق,پایان نامه اقتصاد,پایان نامه برق,پایان نامه معدن, پایان نامه کارشناسی ,پایان نامه صنایع,پایان نامه علوم سیاسی ، پایان نامه کاردانی

طراحی سایت : سایت سازان