آغاز گرافیک در زبان برنامه نویسی ++C

آغاز گرافیک در زبان برنامه نویسی ++C
بخش اول

(از استاد هادی مینوفام که مرا با گرافیک کامپیوتری مخصوصا OpenGL آشنا نمودند نهایت تشکر را دارم. امروز آموزش هایی از گرافیک در ++C را می گذارم. در پست های قبلی مطالب و پروژه های بسیار زیادی از OpenGL را برای دانلود قرار داده بودم.)

ابتدا مختصر درباره زبان برنامه نویسی ++C توضیح می دهم. در سال 1972 پروفسور دنیس ریچی زبان C را  ساخت که در دسته زبان های برنامه نویسی سطح میانی قرار می گیرد و نسخه بعدی آن که ++C نام دارد توسط بنیامین استراستروپ دانمارکی در سال 1979 ساخته شد. در زبان ++C ویژگی کلاس نویسی و یکسری دیگر از ویژگی ها به C اضافه شد و آنرا به تکامل رساند.  هسته نرم افزارهای بزرگی مثل MATLAB و Maya و Photoshop نیز به این زبان نوشته شده است.

در این سری آموزش نمی خواهیم به نحوه برنامه نویسی در ++C بپردازیم بلکه به مبحث گرافیک کامپیوتری در ++C می پردازیم. (قبلا در وبلاگ مطالبی در مورد گرافیک کامپیوتری مخصوصا OpenGL و DirectX و همینطور پروژه های آنرا برای دانلود قرار داده بودم).

شاید این نوع گرافیک کامپیوتری روشی منسوخ شده باشد، اما برای برنامه نویسان حرفه ای که کمتر در این بخش کار کرده اند و همینطور دانشجویان دوره کارشناسی و کارشناسی ارشد و حتی دکترا که به مبحث گرافیک برخورد می کنند جالب و فوق العاده حرفه ای باشد.

برای شروع کار نیاز به کامپایلری داریم تا برنامه نوشته شده را خطازدایی کند و قابلیت اجرا داشته باشد.

من در اینجا 2 نرم افزار معرفی می کنم، اما با یکی کار میکنم.


برنامه اول: DosBox

لینک دانلود برنامه

300px-DOSBox_screenshot.png


برنامه دوم:++Dev-C

لینک دانلود برنامه

dev-c-logo.jpg

تصویری از محیط نرم افزارdevcpp5_scr.jpg

(البته در پست های قبلی دانلود این نرم افزارها را قرار داده بودم)

ما در اینجا و در ادامه مباحث، در محیط ++Dev-C کار می کنیم.

نرم افزار را دانلود و نصب کنید. شما می توانید برنامه های ++C خود را در این محیط به راحتی بنویسید و از منوی Debug و سپس گزینه Debug آنرا خطازدایی کنید یا مستقیما دکمه F8 را بزنید. همینطور می تواینید آنرا از منوی Execute و سپس Compile یا کلیدهای ترکیبی Ctrl+F9 کامپایل و یا با دکمه F9 یا منوی Execute و سپس Run برنامه های نوشته شده خود را اجرا کنید. استفاده از این نرم افزار نسبت به DosBox ساده تر است و به همین دلیل این برنامه را توضیح می دهیم.

تمامی فایل های سرآیند شامل iostream.h و conio.h به صورت پیش فرض با همین برنامه در محل نصب قرار می گیرند، اما کار ما در اینجا برنامه نویسی گرافیک است و به یک فایل سرآیند دیگر به نام graphics.h نیاز داریم. بعد از نصب برنامه، ابتدا فایل سرآیند کتابخانه graphics.h را از از لینک زیر دانلود کنید:

دانلود فایل سرآیند کتابخانه graphics.h

بعد از دانلود آنرا از حالت فشرده خارج کنید. دو فایل در داخل آن وجود دارد: graphics.h و libbgi.a که لازم است در محلهایی کپی شوند. فایل graphics.h را کپی کرده و به محل نصب برنامه کامپایلر بروید. به صورت پیش فرض شما نرم افزار را در این مسیر نصب کرده اید:

C:\Dev-Cpp\include

به پوشه include بروید و فایل graphics.h را در آنجا کپی کنید. همینطور فایل libbgi.a را در پوشه lib یعنی مسیر زیر کپی کنید:

C:\Dev-Cpp\lib
تا اینجا ابزارهای لازم را برای برنامه نویسی گرافیک در ++C آماده کرده ایم. حالا نرم افزار را باز کنید. محیطی مثل عکس 1 را می بینید:عکس 1jn1xs7z0t7q4rr27ztx.png
حالا از منوی File گزینه New و سپس Project را بزنید. (عکس 2)
عکس 24xowz3mtc22fjzczyr0b.png
پنجره New Project باز شده و از آنجا Empty Project را انتخاب و در پایین اسمی به پروژه خود بدهید و نوع آنرا ++C انتخاب کنید. (عکس 3)عکس 3mjmu88sl1ofludwcqq1.png
در پنجره Projects نام پروژه شما نمایش داده می شود. روی آن کلیک راست کرده و گزینه New File را بزنید. (عکس 4)عکس 4x9gbgw6r8rntixlxbre4.png
حالا علامت مثبت کناری نام پروژه را بزنید تا فایل جدید را مشاهده کنید. روی آن دابل کلیک کنید تا محیط برنامه نویسی نمایش یابد. (یادتان باشد به محض باز کردن file جدید آنرا در کنار فایل پروژه ذخیره کنید) (عکس 5)عکس 5oa4wo5n522ksok5qcrg0.png


حالا لازم است یکسری فایل کتابخانه ای را برای اجرای پروژه های گرافیکی در ++C به برنامه پیوند دهیم. برای این منظور دکمه های Alt+P را زده تا پنجره Project Options باز شود و به منوی Parameters آن بروید. (عکس 6)

عکس 6

auqet8xoozf5aathzp8k.png


حالا لازم است تا فایل های کتابخانه ای به نام های زیر را در برنامه در بخش Linker وارد نمایید. به این منظور نام های زیر را همراه با خط تیره کناریشان به برنامه اضافی کنید: (عکس7)

lbgi-
lgdi32-
lcomdlg32-
luuid-
loleaut32-
lole32-

عکس 7

6fjsb5srrw66zw05pxz.png


حالا OK کنید و برنامه را دوباره ذخیره کنید تا فایل های پیوند داده شده نیز به همراه پروژه ذخیره شوند.

حالا می خواهیم یک برنامه ساده بنویسیم. (عکس 8).

کدها در بخش پایینی توضیح داده شده اند.

عکس 8

clm3vayfo3omod3g2f4.png


دو خط اول برنامه فایل های سرآیند graphics.h و conio.h را در هدر قرار می دهد. graphics.h برای گرافیک و conio.h همان console input/output است. یعنی کنسولهای ورودی و خروجی برنامه. این دو فایل ماکرو هستند (دستورات پیش پردازنده) این فایل ها به برنامه ضمیمه می شوند تا بتوانیم از توابع داخلی آنها استفاده کنیم.

سپس ()int main نوشته شده و } باز می شود و در انتهای برنامه نیز { بسته می شود و لابه لای قطعه کد برنامه یا بدنه اصلی برنامه نوشته می شود.

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

در خط بعدی gd یا graph drive یا راه انداز گراف و gm یا graph mode یا حالت گراف را از نوع int تعریف کرده ایم. سپس gd برابر DETECT شده است. یعنی به صورت خودکار نوع گرافیک خروجی شناسایی شود.

(حالت دوم برای این خط به این شکل است:

; gd=VGN

;gm=VGAHI

البته حالت های دیگری نیز برای این نوع وجود دارد که در آینده بررسی می کنیم).


در خط بعدی تابع ()initgraph تعریف شده است که gd و gm ثابت آن بوده و مسیری برای نمایش فایلهای درونی bgi نیز باید مشخص شود. می توان آنرا به صورت کامل مسیردهی کرد یا مانند مسیردهی ما در عکس آنرا قرار دهید.

در خط بعدی تابع ()line تعریف شده است که مختصات ورودی یک خط در صفحه نمایش را مشخص می کند. به صورت زیر تعریف میشود:

;(x1,y1,x2,y2)   

x1 و y1 محل شروع خط و x2 , y2 محل پایان خط هستند. لازم به ذکر است تفاوتی بین جابجایی محل x2,y1 و x1,y1 وجود ندارد.

محور مختصات در صفحه نمایش طبق تابع ()initgraph سایز 479*639 است.

تابع ()getch خروجی را نمایش می دهد. 

خط آخر return 0 باعث می شود اگر برنامه یعنی تابع ()main درست اجرا شد مقداری به سیستم عامل برگردانده شود تا سیستم عامل متوجه شود که برنامه با موفقیت به پایان رسیده است.

نکته: میتوان به جای استفاده از تابع ()initgraph از تابع ()initwindow برای مشاهده پنجره خروجی استفاده کنیم. تفاوتی که این دو با هم دارند در این است که تابع ()initgraph سایز صفحه خروجی اش 479*639 است ولی در تابع ()initwindow می توان آنرا دستی مقداردهی کرد و همین طور می توان عنوان پنجره خروجی را خودمان تعیین کنیم. شکل استفاده از این تابع به صورت زیر است:

عکس 9

zwxnmtwjn173is937u6j.png


خروجی برنامه ای که نوشته ایم به صورت زیر خواهد بود: (عکس 10)

عکس 10

qn7kqksn9uh5h5on5q5x.png


این آموزش در بخش های : آموزشی (برنامه نویسی) ، آموزشی (گرافیک)  و برنامه نویسی قرار دارد.

پایان بخش اول


مطالب مشابه :


تحقیق درمورد گرافیک

درباره هنر گرافیک - تحقیق حتی آنان نرم افزارهای کامپیوتری را به دلیل خارج بودن




موضوعات تحقیق در رشته کامپیوتر

دانشجو رشته کامپیوتر دانشگاه آزاد - موضوعات تحقیق در رشته کامپیوتر - اطلاعات رشته کامپیوتر




پروژه گرافیک کامپیوتری - شکل فراکتالی square fractal opengl

برنامه نویس - پروژه گرافیک کامپیوتری - شکل فراکتالی square fractal opengl - برنامه نویسی و انجام پروژه




تحقیق کامپیوتر - ویروس کامپیوتری چیست؟

پایان نامه کامپیوتر تحقیق کامپیوتر ویروس کامپیوتری چیست؟ دانلود مقالات هنر و گرافیک




موضوع پروژه درس گرافیک کامپیوتر 2 استاد فریدی

موضوع پروژه درس گرافیک کامپیوتر 2 ۱- منبع تحقیق باید حتما از مقالات معتبر باشد که ۲ شرط




مقاله ای کامل در مورد کارت گرافیک (VGA CARD) (مقالات آموزشی)(آموزش سخت افزار)

مرکز تخصصی کامپیوتر - مقاله ای کامل در مورد کارت گرافیک آشنایی با شبکه های کامپیوتری.




مقاله در باره کارت گرافیک کامپیوتر

㋡ از هــــر دری ســخــنــی ㋡ - مقاله در باره کارت گرافیک کامپیوتر - آموزش,کتاب,مقاله,دانلود




پروژه گرافیک کامپیوتری - opengl - c++ builder

برنامه نویس - پروژه گرافیک کامپیوتری - opengl - c++ builder - برنامه نویسی و انجام پروژه های دانشجویی




آغاز گرافیک در زبان برنامه نویسی ++C

وبلاگ گروه نامیرا - آغاز گرافیک در زبان برنامه نویسی ++c - برنامه نویسی، گرافیک، هک و امنیت




بزرگترین منبع پروژه های opengl - گرافیک کامپیوتری

برنامه نویس - بزرگترین منبع پروژه های opengl - گرافیک کامپیوتری - برنامه نویسی و انجام پروژه های




برچسب :