You are on page 1of 14

‫الرسم بالحاسوب‬

‫بلغة ‪C++‬‬
‫اصنع مستقبلك بنفسك‬

‫‪ENG.AHLAM ALI‬‬
GRAPHICS ‫مكتبة‬
1 ‫المحاضرة‬

ENG.AHLAM ALI
‫العناوين‬

‫• مقدمة‬
‫• تنصيب وتجهيز بيئة العمل‬
‫• توضيح اهم مكونات البرنامج‬
‫• دوال رسم الخط‬
‫• دوال )(‪getmaxx(),getmaxy‬‬

‫‪ENG.AHLAM ALI‬‬
‫هيكلية بناء البرنامج‬

‫شرح االساسيات‬
‫مكتبة ‪graphics.h‬‬
‫هي مكتبة رسومات تُستخدم في لغة ‪ ++C/C‬إلنشاء وتحكم في الرسومات على الشاشة‪.‬‬
‫تسمح لك هذه المكتبة برسم أشكال هندسية مختلفة مثل الخطوط‪ ،‬الدوائر‪ ،‬المستطيالت ‪،‬‬
‫النصوص ‪ ،‬والصور ‪.‬‬
‫➢ هي توفير واجهة برمجية بسيطة للتعامل مع الرسومات على الشاشة‪.‬‬
‫بعض من الدوال التي توفرها مكتبة "‪ "graphics.h‬هي‬
‫)(‪، rectangle() ، circle() ، line() ، closegraph() ،initgraph‬‬
‫)(‪setbkcolor() ،setcolor() ،outtextxy() ، arc‬‬

‫‪ENG.AHLAM ALI‬‬
‫هيكلية بناء البرنامج‬

‫شرح االساسيات‬
‫مكتبة ‪conio.h‬‬
‫هي مكتبة تستخدم في لغة ‪ ++C/C‬لتوفير واجهة أوامر المستخدم والتحكم في اإلدخال واإلخراج‪ .‬توفر هذه‬
‫المكتبة وظائف (دوال) للتالعب بالنصوص المعروضة على الشاشة والتعامل مع إدخال المستخدم واإلخراج‬
‫على الشاشة ‪.‬‬
‫بعض من الدوال التي توفرها مكتبة "‪ "conio.h‬هي )(‪، gotoxy() ، clrscr() ، getch‬‬
‫)(‪delay() ، textbackground() ، textcolor‬‬

‫‪ENG.AHLAM ALI‬‬
‫هيكلية بناء البرنامج‬

‫شرح االساسيات‬

‫الكود ; ‪int gd = DETECT, gmode‬‬


‫في هذا السطر‪ ،‬يتم إنشاء متغيرين ‪ gd‬و ‪ gmode‬من نوع ‪ gd ، int‬يُستخدم لتخزين معرف‬
‫الرسومات ‪ ،‬و ‪ gmode‬يُستخدم لتخزين وضع الرسومات‪.‬‬
‫➢ قيمة ‪ DETECT‬هو قيمة ثابتة تُستخدم لتعيين وضع الكشف التلقائي لمعرف ووضع الرسومات‪.‬‬
‫يقوم البرنامج بتحليل البيئة وتحديد المعرف الصحيح للرسومات ووضعها بنا ًء على النظام الذي يتم تشغيل البرنامج‬
‫عليه‪ .‬يعني ذلك أن البرنامج سيتعرف تلقائيًا على المعرف الصحيح للرسومات ووضع الرسومات المتوافق مع‬
‫النظام‪.‬‬
‫باستخدام `‪ ،`DETECT‬يمكنك كتابة الكود بشكل عام وتشغيله على مختلف األنظمة دون الحاجة إلى تغيير المعرف‬
‫أو وضع الرسومات يدويًا‪ .‬يتم تحديد المعرف ووضع الرسومات بشكل تلقائي وفقًا للبيئة التي يتم تشغيل البرنامج‬
‫عليها‪.‬‬
‫‪ENG.AHLAM ALI‬‬
‫هيكلية بناء البرنامج‬

‫شرح االساسيات‬
‫دالة )(‪initgraph‬‬
‫تنتمي هذه الدالة إلى مكتبة "‪ "graphics.h‬وتُستخدم إلعداد النافذة الرسومية والبدء في عرض‬
‫الرسومات عليها‪.‬‬
‫وظيفة الدالة )(‪ : initgraph‬تهدف إلى إصالح وتهيئة النافذة الرسومية وتحضيرها لعرض الرسومات بنا ًء على‬
‫المعرف ووضع الرسومات التي تم تحديدها‪.‬‬
‫بعد استدعاء دالة )(‪ initgraph‬يمكننا استخدام الدوال األخرى في مكتبة "‪ "graphics.h‬مثل‬
‫)(‪، arc() ، rectangle() ، circle() ، line() ، closegraph() ، initgraph‬‬
‫)(‪ setbkcolor() ،setcolor() ،outtextxy‬إلخ‪ ،‬لرسم األشكال والعناصر على النافذة الرسومية‪.‬‬

‫‪ENG.AHLAM ALI‬‬
‫هيكلية بناء البرنامج‬

‫شرح االساسيات‬
‫داله )(‪getch‬‬
‫هي الدالة التي تقوم بتثبيت شاشة الجرافيك(الرسم)‬
‫;)(‪closegraph‬‬
‫دالة تنتمي إلى مكتبة "‪ "graphics.h‬وتُستخدم إلغالق وإنهاء النافذة الرسومية‬
‫وإيقاف عرض الرسومات عليها ‪ ،‬وهذا يساعد في تحرير الذاكرة وموارد النظام‬
‫المستخدمة بواسطة النافذة الرسومية‪.‬‬
‫‪ENG.AHLAM ALI‬‬
‫تمارين‬

‫هيكلة بناء أي برنامج‬


#include<graphics.h> #include<conio.h>
int main() #include<graphics.h>
{ int main()
{
‫لن نستطيع استخدام الدالة‬ int gd=DETECT,gmode;
‫ اال اذا اضافنا‬getch();
conio.h ‫المكتبة‬
initgraph(&gd,&gmode,""); int gd=DETECT,gmode;
. initgraph(&gd,&gmode,"");
. .
system("pause"); .
closegraph(); getch();
} closegraph();
ENG.AHLAM ALI }
‫دوال‬

‫بعض الدوال المستخدمة في البرامج‬

getmaxx()=480 getmaxx()/2=240
getmaxy()=640 getmaxy()/2=320

ENG.AHLAM ALI
‫دوال رسم االشكال‬
‫;)‪PUTPIXCEL(X,Y,COLOR‬‬ ‫دالة رسم النقطة‬
‫;)‪LINE(x1,y1,x2,y2‬‬ ‫دالة رسم الخط‬
‫دالة رسم الخط من النقطة ‪ 0,0‬الى مسافه ‪dx,dy‬‬
‫;)‪MOVETO(x,y‬‬ ‫;)‪LINEREL(dx,dy‬‬
‫;)‪MOVEREL(dx,dy‬‬ ‫دالة رسم الخط من النقطة ‪ 0,0‬الى النقطة ‪x, y‬‬
‫;)‪LINETO(x,y‬‬
‫دوال تقوم بتغير موقع النقطة الحالية بإزاحة بمقدار ‪dx & dy‬‬
‫;)‪MOVEREL(dx,dy‬‬
‫دالة تقوم بتغيير موقع النقطة الحالية الى النقطة ‪x & y‬‬
‫‪ENG.AHLAM ALI‬‬ ‫;)‪MOVETO(x,y‬‬
‫تمرين‬

‫باستخدام دوال رسم الخط‬

‫‪ENG.AHLAM ALI‬‬
#include <iostream>
#include<graphics.h> ‫حل التمارين‬
#include<conio.h>
using namespace std;
int main() {
int gdriver=DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode,"");
line(150,100,450,100);
line(150,100,100,180);//ritght
line(450,100,500,180);//left
line(100,180,500,180);
//////////////////////////
line(100,200,500,200);//up
line(100,200,300,450);
line(500,200,300,450);
getch(); return 0; }
ENG.AHLAM ALI
‫التكليف‬

‫التكليف ‪ :‬رسم بيت‬


‫باستخدام دوال الخط‬

‫‪ENG.AHLAM ALI‬‬

You might also like