آموزش گرافیک در زبان C++ سی پلاس پلاس (2)

در این قسمت قصد داریم یک View یا Viewport با استفاده از هِدر فایل graphics برای رسم اشکال گرافیکی تولید کنیم.

قبل از انجام هر کاری نیاز به دانستن یکسری اطلاعات جزئی در زمینه گرافیک (2D - دو بعدی) کامپیوتری داریم. در زیر مواردی همراه با توضحیات آورده شده است :

مانیتور گرافیکی (Graphics monitor) :
مانیتورهای مورد استفاده در سیستم های خانگی، مانیتورهای گرافیکی هستند. سطح داخلی صفحه مانیتورها، دارای یک سری سلول هاست که به رنگ های قرمز، سبز و آبی حساس هستند. همچنین هر مانیتور، دارای سطرهای افقی است که با دقت در مانیتور می توانید آنها را ملاحظه کنید. در داخل مانیتور (منظور مانیتور های لامپ اشعه کاتدی است به اختصار CRT)، یک تفنگ الکترونیکی وجود دارد که با حرکت خود منجر به نوشتن داده های تصویری در روی سطح داخل صفحه مانیتور می شود. نوشتن داده های تصویر در مانیتور از چپ به راست و از بالا به پایین صورت می گیرد. به این صورت که تفنگ الکترونیکی از گوشه بالایی سمت چپ مانیتور کار خود را آغاز کرده و پس از تاباندن اشعه به سلول های سطراول، به سطر دوم مانیتور رفته و همین کار را تا سطر آخر ادامه  می دهد. سپس تفنگ الکترونیکی دوباره به سطر اول رفته و این روند را تکرار می کند. به این عمل، احیای تصویر (Refresh) می گوییم.توجه نمایید ساختار و فناوری به کار رفته در مانیتورهای LCD و LED با صفحه نمایش CRT کاملا متفاوت است.

نمایی از ساختار لامپ تصویر CRT :

پیکسل (Pixel) :
مخفف واژه های Picture Element است که به معنای عنصر تصویری میباشد. اجزائی که با کنار هم قرار گرفتن، یک تصویر گرافیکی را میسازند یا کوچکترین واحد سازنده تصویر که غالبا بشکل مربع میباشد و حاوی اطلاعات رنگی است. تصویری که توسط پیکسل ایجاد شود بیت مپ (Bitmap) یا رستر(Raster) گفته می شود. هرچه تعداد پیکسل ها بیشتر باشد کیفیت تصویر بالاتر خواهد رفت. پیکسل ها عرض و ارتفاع ندارند(ثابت هستند) و فقط شامل یک سری اطلاعات می باشند. یک تصویر دیجیتال شامل سه مقدار عددی RGB می باشد (آبی،سبز،قرمز) که رنگ را مشخص می کند. در پیکسل هر مقدار از این رنگ ها توسط 8 بیت از اطلاعات مشخص می شوند. 3 ردیف 8 بیتی 24 بیت می شود.در گذشته از پالت های رنگ به جای سه تایی های RGB استفاده میشد. پالت ها شامل 256 رنگ بودند. با پیشرفت تکنولوژی، سه تایی های RGB جایگزین پالت ها شدند و به دلیل افزایش وسعت طیف رنگها( 16 یا 32 میلیون رنگ)، منجر به افزایش قابل ملاحظه ای در کیفیت گرافیک کامپیوتری شدند.
هر 8 بیت می تواند شامل 256 مقدار باشد (0-255) برای مثال (250,160,5) به معنی : قرمز = 250، سبز = 160 و آبی = 5 می باشد که یک پیکسل نارنجی را مشخص می کند.

نمایی از پیکسل ها در یک صفحه نمایش CRT :


دوستان توضیحات و مطالب بالا گوشه کوچکی از دنیای گرافیک کامپیوتری بودند. ناگفته نماند در زمینه ی گرافیک کامپیوتری کتاب های زیادی نگاشته شده است و مطالب فراوان و گوناگونی وجود دارد ولی در این جا به همین مطالب اکتفا میکنیم.

خب برگردیم به سراغ کار اصلیمون، برای شروع کامپایلر "++Dev-C" را اجرا کنید. از منوی File گزینه ی Open project or file (کلیدهای ترکیبی Ctrl + O) را کلیک کنید و بعد در پنجره باز شده فایل پروژه ای که در مرحله قبل آماده کردیم را یافته و باز کنید.
توجه : فایل های پروژه ای کامپایلر "++Dev-C" آیکونی بشکل زیر دارند :

پس از اینکه فایل پروژه را باز کردید طبق شکل زیر از پنل سمت چپ برنامه روی تَب Project کلیک کرده تا نام فایل پروژه باز شده نمایان شود حالا روی + کنار اسم فایل پروژه کلیک کنید تا فایل زیر مجموعه پروژه که در قسمت اول ساختیم نمایش یابد و بعد روی آن کلیک کنید تا باز شود :



حالا باید در این فایل قطعه کدهای زیر را وارد کنیم :

 

     <include <graphics.h#

                      ()int main
                                  }
                    ;return 0  
                                  {

 


دستور اول یک ماکرو است (ماکرو : دستورات پیش پردازنده) که باعث میشه فایل هِدر graphics.h به فایل برنامه ضمیمه بشه تا ما بتوانیم از توابع داخل آن در برنامه خودمان بهره ببریم.

- دستور دوم تابع ()main است که در برنامه های نوشته شده در زبان برنامه نویسی ++C به عنوان بدنه اصلی برنامه شناخته میشود (البته در مواردی استثنائی از این تابع استفاده نمیشود مانند برنامه های نوشته شده توسط Win32 API). هیچ برنامه ای در وجود ندارد که فاقد این تابع باشد. بنابراین، تابع ()main یکی از اجزای مهم برنامه های زبان C به حساب میاید.
- دستور سوم یعنی return 0 باعث میشود اگر برنامه یعنی تابع ()main درست اجرا شد مقداری به سیستم عامل برگردانده شود تا سیستم عامل متوجه گردد که برنامه با موفقیت به پایان رسیده است.

برای این که بتوانیم یک Viewport یا همان پنجره ای برای رسم اشکال گرافیکی تولید کنیم باید از تابعی به اسم ()initwindow استفاده کنیم.(تابع دیگری به اسم ()initgraph موجود است ولی به دلایلی بهتره از این تابع استفاده کنیم)

ساختار پارامترهای ورودی تابع ()initwindow به شکل زیر است :

( int initwindow (int width ,int height ,const char* title ,int left ,int top ,bool dbflag ,bool closeflag

توضیحات :

width : عرض پنجره تولید شده برحسب پیکسل از نوع صحیح (int)
height : طول پنجره تولید شده برحسب پیکسل از نوع صحیح (int)
title : عنوان پنجره تولید شده از نوع رشته ای با تخصیص حافظه ی پویا و بصورت ثابت (*const char)
left : موقعیت عرضی(X) پنجره در صفحه نمایش از نوع صحیح (int)
top : موقعیت طولی(Y) پنجره در صفحه نمایش از نوع صحیح (int)
dbflag : اگر مقدار true بگیرد بصورت اتوماتیک بافری دوبل(دو برابر) به پنجره تولید شده اختصاص میدهد از نوع بولی (bool)
closeflag : اگر مقدار false بگیرد دکمه close پنجره غیر فعال میشود از نوع بولی (bool)


خیلی خب حالا کد تابع مقداردهی شده زیر را بعد از آکولاد باز شده تابع ()main و بالای دستور return 0 قرار دهید :

;( initwindow (400 ,400 ,"Viewport" ,300 ,200

و بعد از این عمل دستورات زیر را به ترتیب در زیر تابع ()initwindow قرار دهید :


;()getch

;()closegraph

تابع ()getch باعث میشود برنامه پس از اجرا منتظر دریافت کارکتری از صفحه کلید بماند و پنجره تولید شده بصورت آنی بسته نشود.(توجه : اگر کلیدی را از صفحه کلید در حین اجرا بودن برنامه بفشارید برنامه بسته میشود)

تابع ()closegraph این تابع سیستم را از حالت گرافیکی خارج می کند و کلیه حافظه هایی را که در اختیار این کار قرار گرفته است را به سیستم عامل بر میگرداند.(آزاد میکند)

حالا باید کد شما به شکل زیر درآمده باشد :

 

                                          

                                                            ()int main
                                                                        }
       ;( initwindow (400 ,400 ,"Viewport" ,300 ,200  
                                                           ;()getch  
                                                    ;()closegraph  
                                                         ;return 0  
                                                                        {

 

پس از انجام دقیق و صحیح مراحل بالا برای دیدن نتیجه کار کلیک F9 را از صفحه کلید بفشارید تا برنامه ای که نوشتید کامپایل و بعد اجرا شود.

نتیجه حاصل از انجام مراحل بالا :

منبع: centralclubs.com


مطالب مشابه :


بازی TOMBRAIDER

آموزش سی پلاس پلاس ++c پروژه آموزش سی پلاس پلاس c++ انجام پروژه ++c تمام برنامه های




دانلود پروژه های سی پلاس پلاس C++

سورس پروژه آموزش طراحی مدیریت تبدیل مبنا به زبان سی پلاس پلاس, دانلود پروژه های سی,




سورس های رایگان سی پلاس پلاس

پروژه های برنامه نویسی سورس های رایگان سی پلاس سورس های uml; آموزش ویژوال بیسیک 6;




تبدیل مبنا ها در ++c

آموزش سی پلاس پلاس ++c پروژه تمام برنامه های پروژه سی پلاس




آموزش گرافیک در زبان C++ سی پلاس پلاس (2)

آموزش گرافیک در زبان C++ سی پلاس پلاس (2) فایل های پروژه ای 6.آموزش Linq / عملگر های Join، Grouping




انجام پروژه برنامه نویسی سی C | پروژه برنامه نویسی C++ | انجام پروژه سی پلاس پلاس

انجام پروژه سی پلاس پلاس - انجام پروژه های اکسل،اکسس و برنامه نویسی آموزش مهارت های




برج هانوی در سی پلاس پلاس

برج هانوی در سی پلاس پلاس پروژه های برنامه نویسی . سورس های uml; آموزش ویژوال بیسیک 6;




2-نرم افزار آموزشی پروژه نویسی در سی پلاس پلاس

پروژه های افزوده (Other Projects ) مسیر و نام پروژه. پروژه های افزوده. ردیف پروژه های قفل دار




برچسب :