You are on page 1of 5

‫كتاب رقم (‪ )3A‬من سلسلة برمجة الرسم بلغة ‪ VC PLUS PLUS‬باستخدام ‪OpenGL‬‬

‫هذه النسخة بتاريخ‪2007/9/29 :‬‬

‫برمجة وتصميم الخط العربي‬


‫‪Microsoft VC ‬‬ ‫‪PLUS PLUS 7.0‬‬ ‫بلغة‬

‫‪OpenGL ‬‬ ‫باستخدام‬
‫الجزء الول‬
‫في هذا الكتاب يتم استخدام مكتبة ‪GLUT.H‬‬
‫لربط النوافذ بمكتبة ‪OpenGL‬‬

‫برمجة‪ :‬البراء عبد الرؤوف الرملي‬


‫طرابلس ‪ /‬ليبيا‬
‫هذا الكتاب مجاني‬

‫مقدمة‬
‫في هذا الجزء من الكتاب شرح لمكتبة خاصة لطباعة‬
‫النصوص باللغة العربية على نافذة الرسم‪ ,‬وقد تم‬
‫تجهيز المكتبة بخط افتراضي مع إمكانية أن يقوم‬
‫المبرمج بتصميم أنواع أخرى من الخطوط‪.‬‬

‫وهذه المكتبة قمت ببرمجتها في الصل باستخدام‬


‫‪ Turbo CPP‬ومن ثم قمت بتحويلها باستخدام مكتبة‬
‫‪ LIBYA.H‬للربط بين برامج ‪ VC‬و ‪Turbo CPP‬‬
‫وقد استخدمت مكتبة ‪ GLUT‬لربط النوافذ بمكتبة ‪.OpenGL‬‬

‫وأريد أن أنبه على أن الكتب العربية لزالت تحتاج إلى تطوير‬


‫وإضافات ‪ ,‬وهذا يقع على عاتقنا جميعا حتى تعم الفائدة ‪ ,‬لنه‬
‫ما لم نتشارك بأفكارنا ‪ ,‬فلن نتقدم خطوة إلى المام‪.‬‬

‫لي تعليق أو ملاحظة على الكتاب “أرحب بالنقد البناء”‪:‬‬


‫‪sbr_system@yahoo.com‬‬
‫كما يمكنك بقية كتب السلسلة من موقعي‪:‬‬
‫‪www.SBRsystem.8m.com‬‬

‫البراء عبد الرؤوف الرملي‬


‫طرابس‪/‬ليبيا‬
‫‪2007/9/29‬‬
‫ما الذي يلزم لستخدام مكتبة ‪OpenGL.H‬‬

‫سنعتمد في هذا الكتاب على ‪ Visual C++ 7.0‬في بيئة ‪Microsoft‬‬


‫‪Visual Studio .NET 2003‬‬
‫للإطلاع على كيفية فتح مشروع جديد راجع الكتاب رقم ‪ 1A‬من السلسة‪.‬‬

‫قم بنسخ الملفات التالية إلى المسارات المبينة (الملفات الثلاثة مرفقة مع الكتاب)‪:‬‬
‫‪C:\Program Files\Microsoft Visual Studio .NET2003\Vc7\PlatformSDK\Lib‬‬
‫‪glut32.lib‬‬

‫‪C:\Program Files\Microsoft Visual Studio .NET2003\Vc7\PlatformSDK\Include\gl‬‬


‫‪glut.h‬‬

‫‪c:\windows\system32‬‬
‫‪glut32.dll‬‬

‫ما يلزم لستخدام برامج الكتاب‬


‫فقم بنسخ ملف المكتبة ‪ arab_gl.h‬إلى داخل مجلد برنامجك‪.‬‬
‫(الملف مرفق مع الكتاب في مجلد المكتبات)‬
‫مملاحظة‪ :‬تم دمج مكتبة ‪ libya.h‬داخل مكتبة ‪ arabic_gl.h‬لذلك لم نستدعها هنا‬
‫دالة لخراج النصوص باللغة العربية‬

‫ويكون شكل الدالة كالتالي‪:‬‬


‫;(‪” ,a,b‬العلم نور” ‪puts_arab)x,y,‬‬
‫تقوم هذه الدالة بتمكين المستخدم من طباعة نص باللغة العربية‬
‫حيث ‪ a‬متغير صحيح يمثل لون الحروف ‪ ,‬وأما ‪ b‬فهو لون الخلفية‪.‬‬
‫والمتغيرين الصحيحين (‪ )x,y‬يمثلان الحداثي الذي تبدأ عنده‬
‫الطباعة‪.‬‬
‫ملاحظة‪ :‬مكتبة ‪ ARAB_GL.H‬تستدعي الخط الفتراضي من المجلد ‪ FRONT‬المرفق مع الكتاب‬
‫لذا قم بنسخ المجلد ‪ FRONT‬وضعه في القرص الصلب "‪ "C‬بحيث يكون مساره الجديد‬
‫‪C:\FONT‬‬
‫وإن كنت ترغب في وجود المجلد ‪ FONT‬برفقة برنامجك بدل من وجوده في المسار ‪C:\FONT‬‬
‫فقم باستخدام مكتبة ‪ ARAB2_GL.H‬بدل من ‪ ARAB_GL.H‬ول تنسى تغييرها أيضا عند‬
‫الستدعاء‪.‬‬
‫مثال عن استخدام دالة‪puts_arab :‬‬
‫الوصف النص‬
‫"‪#include "stdafx.h‬‬ ‫افتراضي من ‪VC‬‬
‫>‪#include <GL/glut.h‬‬ ‫مكتبة الرسم‬
‫"‪#include "ARAB_GL.H‬‬ ‫يتم استدعاء ‪ ARAB_GL.H‬لذا‬
‫يجب التأكد من وجودها داخل مجلد‬
‫برنامجك‬
‫()‪void graph‬‬ ‫دالة بيانات الرسم‬
‫{‬
‫;‪int x=100,y=100,a=15,b=0‬‬
‫;"العلم نور"=][‪char w‬‬
‫;()‪cleardevice‬‬ ‫لمسح النافذة‬
‫;(‪puts_arab)x,y,w,a,b‬‬ ‫دالة لطباعة النص العربي عند النقطة (‬
‫}‬ ‫‪ )x,y‬حيث لون الخط هو (الزرق=‪, )1‬‬
‫ولون الخلفية (سوداء=‪)0‬‬
‫()‪int main‬‬
‫{‬
‫;()‪ini_g‬‬ ‫استدعاء دالة لعداد بيئة الرسم‬
‫برنامج الكتابة بالعربي"‪ini_w)",‬‬ ‫استدعاء دالة لعداد نافذة الرسم ‪ ,‬بحيث‬
‫;(‪0,0,400,400‬‬ ‫نكتب في الدالة عنوان النافذة وحدودها‬
‫;(‪glutDisplayFunc)graph‬‬ ‫استدعاء دالة لعرض دالة بيانات الرسم‬
‫;()‪glutMainLoop‬‬ ‫لتثبيت الرسم ‪ ,‬حيث يتم تنفيذ البرنامج‬
‫بشكل متواصل‬
‫;‪return 0‬‬
‫}‬

‫أما عن طريقة تصميم الحروف‬


‫‪C‬‬ ‫قمت بكتابة برنامج تصميم الحروف بلغة‬
‫‪PLUS PLUS‬‬

‫ولكن باستخدام‪Turbo C PLUS PLUS V3 :‬‬


‫ولمعرفة المزيد يمكنك قراءة الجزء الثاني من كتابي‪:‬‬
‫"برمجة وتصميم الخط العربي باستخدام ‪"Turbo C PLUS PLUS V3‬‬
‫يمكنك تحميل الكتاب من‪www.SBRsystem.8m.com :‬‬

You might also like