الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج : الرسام - Gl-painter ، النسخة الأولى ،

بدأه Abdullah.Alshammeri في 21 ديسمبر 2009 · 10 رد · 4,383 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ،

هذا برنامج ، شبيه بفكرة برنامج الرسام ،

وهو لرسم بعض الاشكال الأساسية ،

في الاصل .. هو مشروع .. في مادة برمجة الرسوميات .. قبل سنة .. والان أنشره .. يمكن يستفيد منه أحد ! لو أن الكود مش منظم كما ينبغي ( طلبوا منا التقيّد باستخدام framework معينة .. على ما اذكر ) .

post-42837-12614269636841_thumb.png

أهم مزايا البرنامج ( سأمدح برنامجي قليلاً :D ) :

- رسم الاشكال الاساسية ( نقطة - خط - مثلث - مستطيل - مضلع ) .

- دعم Undo و Redo .

- واجهة GUI .

العيوب :

- البرنامج بدائي .. لدرجة أن الالوان عشوائية .. ولايمكن حفظ الصورة .. ولافتحها .

- طريقة عمل البرنامج تجعله يكون موجه إلى Vector Graphics أكثر من Raster Graphics ، حيث يتم تخزين النقاط في مصفوفة ديناميكية ، بدلا من تخزين محتوى الصورة بالكامل .

الأدوات :

glut + glui + opengl + visual c++ 6

أتمنى لو أستطيع أن أعود لاكماله ، وذلك لدعم :

Filling

Complex Shapes

Image Loading/Saving

Image Processing

Layers

ولكن لا أعرف هل OpenGL مناسبة لهذه المهمة ؟

بالتوفيق للجميع ..

GLPainter.zip

تم تعديل هذه المشاركة بواسطة الشمري في 21 ديسمبر 2009 في 23:29

4

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

صدفة غريبة، أنا أيضا أشتغل في برنامج بسيط للرسم، لكنه بالجافا، فقط لتمضية الوقت :D

في الإطار shape properties، ماذا تعني wireframe؟؟ وأيضا ماذا تعني بpoint size؟؟ فالpoint هو عبارة عن pixel، وحجمه تابث حسب الscreen resolution، أم أنك تعني شيئا آخر؟؟

#3

حياك الله أخي :-) ..

wire-frame ، يعني رسم دائرة ( على سبيل المثال ) ، ولكنها مجوّفة وليست مصمتة .. يعني :

Wire Circle

vs

Solid Circle

مثل ماهو واضح في الصورة

أما حجم النقطة ، فيمكن أن نتحكم به في OpenGL ( المكتبة الرسومية التي استخدمتها ) ، وممكن تكون اكثر من بكسل ، حسب اعداداتك .. وحسب مايسمح به كرت الشاشة ( طبعاً هذا ليس منطقي .. ولكن وضعته لان الدكتور عاوز كدا :D ) .

تم تعديل هذه المشاركة بواسطة الشمري في 21 ديسمبر 2009 في 23:43

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

بانتظار النسخة الثانية، لكن لا تتأخر :lol: وإلا سأطرح في المنتدى برنامجا منافسا لبرنامجك

--------------------------

كيف اضفت خاصية ال undo/redo؟؟ المبدأ فقط بدون كود :lol: معلوماتي على قدي فيما يخص C++

تم تعديل هذه المشاركة بواسطة herch في 22 ديسمبر 2009 في 00:12

#5
اقتباس
كيف اضفت خاصية ال undo/redo؟؟ المبدأ فقط بدون كود

حسب ما أذكر :-) :

كل الاشكال كانت في النهاية عبارة عن كائن من نوع Shape مثلا .. مكون من عدة نقاط ( ومواصفات أخرى .. مثل اللون ) .

كلما أنشأنا شكل جديد .. يتم ادخاله في مصفوفة ديناميكية ( Vector على سبيل المثال ) ..

ثم أعمل for loop على هذه المصفوفة الديناميكة لرسم كل شكل .

عملية undo : تعني ازالة شكل من Vector - ووضعه في Vector أخرى .. لو أردنا استرجاعه - .

عملية redo : تعني اضافة الشكل الذي تمت ازالته ..

بالتالي عندنا مصفوفتين ديناميكيتين ..

المبدا بسيط جدا ،

لكن خذ مثلا .. عملية التلوين باستخدام " طلاء " .. Filling .. ( استخدام " سطل " .. لطلاء منطقة محددة ) .

هنا .. لم أعرف كيف أقوم بعملية التراجع والتكرار Redo و Undo ..

هل سأحتفظ بكل بكسل لونته .. حتى أعيده الى قيمته السابقة مثلا ؟

هل يعرف أحد كيف نتراجع عن عملية Filling ؟

اقتباس
بانتظار النسخة الثانية، لكن لا تتأخر

ستنتظر طويلاً :D ..

هذا الامر لن أقوم به الان ..

لدي من المشاريع مايكفي .. ولم أنجز 5% منها :wacko:

تم تعديل هذه المشاركة بواسطة الشمري في 22 ديسمبر 2009 في 00:31

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#6

رائع , و لكن في الحقيقة لما تعتمدون على برامج إحتكارية و يا أخ الشمري لمذا بعض المسلمون يمتلكون برامج غير مرخصة .

لما لا ينضم معنا أولائك الناس مع ريتشارد و يهجروا البرامج الإحتكارية.

نقبل تحياتي

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg
#7
اقتباس
رائع , و لكن في الحقيقة لما تعتمدون على برامج إحتكارية و يا أخ الشمري لمذا بعض المسلمون يمتلكون برامج غير مرخصة .

لما لا ينضم معنا أولائك الناس مع ريتشارد و يهجروا البرامج الإحتكارية.

نقبل تحياتي

تقصد Visual Cpp 6 ؟

هو المستخدم في تلك المادة ، حتى يترجم الدكتور الكود، بالاضافة الى أن سلسلة Visual Cpp الافضل .

عموما ، الان أكتب الموضوع من Linux ، وسأصبح حرّاً .. قريبا :) ..

تم تعديل هذه المشاركة بواسطة الشمري في 22 ديسمبر 2009 في 22:49

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#8

السلام عليكم ورحمة الله وبركاتة

برنامج رائع يا اخ الشمري

عندي سؤال : انا اتعلمت ال opengl ولكن عندما انفذ البرنامج تكون في شاشة لوحدها

سؤالي : كيف تتعامل بال opengl مع WindowsFormsApplication

يعني زي برنامجك بحيث يكون عندي button اضغظ علي ال button يرسم في نفس ال form ????

اتمني انك فهمت سؤالي ؟؟ وشكر

1
#9
اقتباس
تقصد Visual Cpp 6 ؟

هو المستخدم في تلك المادة ، حتى يترجم الدكتور الكود، بالاضافة الى أن سلسلة Visual Cpp الافضل .

عموما ، الان أكتب الموضوع من Linux ، وسأصبح حرّاً .. قريبا ..

السلام عليكم ... تجربتي مع لينكس رائعة مؤخرا (Opensuse) وعندي الكثير من الوقت في هذه الفترة وارغب في تعلم opengl في بيئة لينكس وبالتالي فانا فعلا مهتم بمعرفة تجربتك في هذا المجال وخصوصا عند قرائتي انك في طريقك للتطوير باستخدام opengl في بيئة اللينكس.

هل اصبحت حرا ام ما زلت تستخدم وتبرمج في بيئة وندوز ؟؟؟ ان كنت انتقلت الى التطوير في بيئة لينكس فارجوك شاركنا تجربتك.

لك مني خالص المودة والاحترام ...... شكرا للجميع

#10
magnifier كتب:

السلام عليكم ... تجربتي مع لينكس رائعة مؤخرا (Opensuse) وعندي الكثير من الوقت في هذه الفترة وارغب في تعلم opengl في بيئة لينكس وبالتالي فانا فعلا مهتم بمعرفة تجربتك في هذا المجال وخصوصا عند قرائتي انك في طريقك للتطوير باستخدام opengl في بيئة اللينكس.

هل اصبحت حرا ام ما زلت تستخدم وتبرمج في بيئة وندوز ؟؟؟ ان كنت انتقلت الى التطوير في بيئة لينكس فارجوك شاركنا تجربتك.

لك مني خالص المودة والاحترام ...... شكرا للجميع

ال OpenGL هي منصة الرسوميات الأساسية في اللينوكس، في مجال التحريك الثلاثي الأبعاد، لذلك عملية تطوير البرمجيات بإستخدام ال OpenGL متوفره بشكل كبير في اللينوكس،

أيضا من ميزات ال OpenGL هي أنها لا تعتمد على المنصة ما يعني أنك عندما تقوم بكتابة برنامج بإستخدام ال OpenGL على اللينوكس فإنه سوف يكون بإمكانك ببساطة تشغيله على الويندوز أو الماك أو أي منصة أخرى بسهوله كبيره.

أيضا يمكنك تشغيله على المنصات الأخرى (مثل الأجهزه الكفية و الأجهزة الصغيره).

لكي تبدأ البرمجة بإستخدام الOpenGL في اللينوكس فإن ما يلزمك هو تنزيل ال Code Blocks و مكتبة ال GLUT (إذا كنت تريد إستعمالها) و من ثم البدء بالعمل

طبعا أي دروس OpenGL تفي بالحاجة، وقسم ال OpenGL زاخر بمثل هذه الدروس لاحظ الفهرس

بالتوفيق

#11
*خلدون خالد* كتب:

ال OpenGL هي منصة الرسوميات الأساسية في اللينوكس، في مجال التحريك الثلاثي الأبعاد، لذلك عملية تطوير البرمجيات بإستخدام ال OpenGL متوفره بشكل كبير في اللينوكس،

أيضا من ميزات ال OpenGL هي أنها لا تعتمد على المنصة ما يعني أنك عندما تقوم بكتابة برنامج بإستخدام ال OpenGL على اللينوكس فإنه سوف يكون بإمكانك ببساطة تشغيله على الويندوز أو الماك أو أي منصة أخرى بسهوله كبيره.

أيضا يمكنك تشغيله على المنصات الأخرى (مثل الأجهزه الكفية و الأجهزة الصغيره).

لكي تبدأ البرمجة بإستخدام الOpenGL في اللينوكس فإن ما يلزمك هو تنزيل ال Code Blocks و مكتبة ال GLUT (إذا كنت تريد إستعمالها) و من ثم البدء بالعمل

طبعا أي دروس OpenGL تفي بالحاجة، وقسم ال OpenGL زاخر بمثل هذه الدروس لاحظ الفهرس

بالتوفيق

اشكرك على ردك. لم يكن عن هذا سؤالي فقد اعددت بيئة العمل على لينكس وكل شيء تمام الحمدلله ولكن اردت ان اعرف تجربة مطور opengl في بيئة لينكس. فقد قال الأخ الشمري في تاريخ 22 December من عام 2009 انه يعمل على نقل بيئة التطوير من وندوز الى لينكس واتمنى ان يشاركنا هذه التجربة. وماهي الصعوبات ( ان وجدت) التي واجهها ؟؟؟

شكرا للجميع

مواضيع مشابهة