محیط گرافیکی در زبان ++c با پنجره ی خروجی تفاوت دارد. یعنی میتوان همزمان از هر دوی این پنجرهها استفاده کرد.
برای کار در محیط گرافیکی، ابتدا باید کتابخانهی مربوط به دستورات گرافیکی را به برنامه اضافه کنیم. یعنی باید در ابتدای برنامه بنویسیم:
#include <graphics.h>
بعد از این کار میتوانیم از دستورات گرافیکی در برنامه استفاده کنیم و دستورات گرافیکی برای برنامه شناخته شده خواهند بود. در ابتدای نوشتن دستورات گرافیکی باید یک پنجره گرافیکی باز کنیم و بعد از آن مجاز به استفاده از دستورات گرفیکی هستیم. برای باز کردن پنجره گرافیکی به صورت زیر عمل میکنیم:
initwindow (600, 600);
دستور زیر برای شما پنجره گرافیکی به اندازهی 600 در 600 پیکسل باز میکند.
محیط گرافیکی محیطی است که با مختصات و x و y سر و کار دارد. نقطهی (0و0) این محیط در گوشهی بالا سمت چپ قرار دارد. در واقع به شکل زیر است که در آن هر چه به راست میرویم مقدار x از صفر بیشتر و بیشتر میشود و هرچقدر از بالا به پائین میرویم مقدار y از صفر بیشتر و بیشتر میشود.
پس در شکل بالا روابط زیر برقرار است:
x2>x1 , y2=y1
x4>x1 , y4>y2
x1=x3 , y3>y1
در شکل بالا دو خط به دلخواه رسم شدهاند.
خط 1 به 4 از نقطهی (50و50) به (450و450) و خط 3 به 2 از نقطهی (450و50) به (50و450) رسم شدهاند.
پس صورت کلی استفاده از دستورات به شکل زیر می باشد:
برای رسم دایره در محیط گرافیکی از دستور زیر استفاده میکنیم:
#include <graphics.h>
main()
{
initwindow(500, 500);
// dastoorate graphici inja neveshte shavand.
getch();
}
در ادامه برخی از دستورات گرافیکی را با هم مرور میکنیم.
دایره
دستور زیر برای رسم دایره استفاده میشود:
circle(x, y, r);
برای رسم دایره به سه عدد احتیاج داریم. دو عدد اول برای نشان دادن مختصات مرکز (x,y) استفاده میشوند. و عدد سوم r برای نشان دادن طول شعاع استفاده میشود.
مثلا برنامه زیر را ببینید:
main()
{
initwindow(300, 200);
circle(100, 100, 75);
getch();
}
خروجی آن به شکل زیر میباشد:
در این شکل پنجرهی گرافیکی به اندازهی 300 در 200 پیکسل باز شده است. دایره در مرکز (100و100) به شعاع 75 پیکسل رسم شده است.
مستطیل
برای رسم مستطیل تو خالی به دو نقطهی ابتدایی و انتهایی یک قطر از مستطیل احتیاج داریم و این یعنی چهار عدد:
rectangle(x1, y1, x2, y2);
مثلا برنامه زیر را ببینید:
main()
{
initwindow(300, 200);
rectangle(100, 100, 250, 150);
getch();
}
خروجی آن به شکل زیر میباشد:
در این شکل پنجرهی گرافیکی به اندازهی 300 در 200 پیکسل باز شده است. مستطیل از نقطهی (100و100) به نقطهی (150و250) رسم شده است.
اگر بخواهید مربع رسم کنید باید از همین دستور استفاده کنید. برای رسم مربع تنها نکتهای که باید به آن توجه داشته باشید این است که اختلاف x ها برابر با اختلاف y ها بشود.
main()
{
initwindow(300, 200);
rectangle(100, 50, 175, 125);
getch();
}
خروجی به شکل زیر میشود:
خط
برای رسم یک خط به مختصات دو نقطهی ابتدایی و انتهایی آن خط احتیاج داریم و این یعنی چهار عدد :
line(x1, y1, x2, y2);
مثلا برنامه زیر را ببینید:
main()
{
initwindow(300, 200);
line(100, 100, 250, 150);
getch();
}
خروجی آن به شکل زیر میباشد:
در این شکل پنجرهی گرافیکی به اندازهی 300 در 200 پیکسل باز شده است. خط از نقطهی (100و100) به نقطهی (150و250) رسم شده است.
برای استفاده از رنگ برای تغییر رنگ هر یک از این شکلها از دستور زیر استفاده میکنیم:
setcolor(عدد)
که در داخل پرانتز شمارهی رنگ مورد نظر را که یکی از اعداد 0 تا 15 را شامل میشود. هر یک از این اعدا نشان دهندهی یک رنگ میباشند. صفر رنگ سیاه و 15 رنگ سفید میباشند.
توجه داشته باشید که این قسمت درست مانند نقاشی روی کاغذ میباشد که ابتدا مداد رنگی را به دست میگیرید و بعد شکل دلخواه را رسم میکنید. پس ابتدا از دستور تغییر رنگ استفاده میکنیم و پس از آن شکل مورد نظر را رسم میکنیم.
به برنامهی زیر دقت کنید:
main()
{
initwindow(300, 200);
setcolor(14);
circle(100, 100, 50);
setcolor(12);
rectangle(100, 100, 250, 150);
setcolor(13);
line(100, 100, 250, 150);
getch();
}
خروجی برنامه به صورت زیر میباشد:
شما دیگر باید بتوانید مختصاتها را درست قرار بدهید تا بتوانید شکلهایی به صورت بالا بکشید. در شکل بالا دایره و مستطیل مماس هستند و خط رسم شده قطر مستطیل میباشد.
تا الان همهی شکلهایی که یاد گرفتید اشکال توخالی بودند. اکنون چند شکل توپر را نیز یاد خواهیم گرفت:
بیضی توپر
برای رسم بیضی توپر از دستور زیر استفاده میکنیم:
fillellipse(x, y, r1, r2);
که دو عدد اول مختصات مرکز بیضی و دو عدد بعدی شعاع بزرگ و کوچک بیضی را نشان میدهند. r1 شعاع افقی و r2 شعاع عمودی میباشند. پس برای رسم دایره توپر دستوری مجزا نداریم:
r1>r2 بیضی خوابیده
r1<r2 بیضی ایستاده
r1=r2 دایره توپر
به برنامهی زیر توجه کنید:
main()
{
initwindow(450, 200);
fillellipse(75, 80, 25, 75);
fillellipse(200, 80, 75, 25);
fillellipse(375, 80, 50, 50);
getch();
}
خروجی برنامه سه شکل زیر را رسم میکند:
مستطیل توپر
برای رسم مستطیل توپر به دو نقطهی ابتدایی و انتهایی یک قطر از مستطیل احتیاج داریم و این یعنی چهار عدد ( دقیقا مشابه دستور رسم مستطیل توخالی)
bar(x1, y1, x2, y2);
مثلا برنامه زیر را ببینید:
main()
{
initwindow(300, 200);
bar(100, 100, 250, 150);
getch();
}
خروجی آن به شکل زیر میباشد:
در این شکل پنجرهی گرافیکی به اندازهی 300 در 200 پیکسل باز شده است. مستطیل از نقطهی (100و100) به نقطهی (150و250) رسم شده است.
اگر بخواهید مربع توپررسم کنید باید از همین دستور استفاده کنید. برای رسم مربع تنها نکتهای که باید به آن توجه داشته باشید این است که اختلاف x ها برابر با اختلاف y ها بشود( درست مانند مربع توخالی)
main()
{
initwindow(300, 200);
bar(100, 50, 175, 125);
getch();
}
خروجی به شکل زیر میشود:
برای رنگی کردن و همچنین انتخاب مدل توپری اشکال توپر از دستور زیر استفاده میشود:
setfillstyle(p, c);
که عدد اول از یک تا یازده برای انتخاب الگوری پر کردن شکل و عدد دوم هم برای انتخاب رنگ شکل مورد نظر استفاده میشود.
برای رسم یک کمان از از دستور زیر استفاده میکنیم:
arc(x1, y1, sa, ea, r);
که دو عدد اول برای مختصات دایرهای که این کمان بخشی از آن بوده است استفاده میشوند. دو عدد بعدی برای زاویه شروع و پایان ( از 0 تا 360 درجه) کمان استفاده میشوند عدد پنجم هم برای طول شعاع دایره که کمان بخشی از آن بوده است استفاده میشود.
برای رسم مکعب مستطیل از دستور زیر استفاده میکنیم:
bar3d(a, b, c, d, e, f);
که این دستور به شش عدد احتیاج دارد. این اعداد به ترتیب مختصات سه نقطه ی چپ بالا،راست پایین و عمق بالا را نشان میدهند.
برای رسم بیضی تو خالی از دستور زیر استفاده میکنیم:
ellipse(x, y, sa, ea, r1, r2);
که دو عدد اول مختصات مرکز بیضی ، دو عدد دوم زاویه شروع و پایان بیضی(میتوان بیضی را لزوما کامل نکشید) و دو عدد آخر شعاعهای بیضی مربوطه میباشند.
برای استفاده از سایر دستورات به نکات دیگری نیازمندیم که در آینده بیان خواهند شد.
در ادامه به مرور و بررسی تمرینهای مطرح شده در کلاس میپردازیم...