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

مشروع رسم المعادلات الرياضية

بدأه Omar Eladel في 8 أكتوبر 2008 · 41 رد · 12,389 مشاهدة · في قسم Cross Platform GUI Libraries العام
مشاركة: واتساب X فيسبوك تيليجرام
#26

اخى Sudanix , انا جعلت الزيادة بمقدار 1 فى الرسم حتى تكون التجربة سريعة , لكن لا مانع من تغييرها او حتى اضافة parameter فى دالة SetPlotter لتحديد دقة الرسم بجعل الزيادة 1 او حتى 0.0001

بالنسبة لموضوع دالة tan , هذه شغلتكم :D لأن مستواى فى الرياضيات قليل (الثانوية العامة فقط) , وفقكم الله فيه

#27

بسم الله الرحمن الرحيم

محاولة للحصول على السرعة ودقة كبيرة في الرسم ومن خلال الرسم النقطي فإني قمت بصنع المحرك MPlotterEngine

يمكنك ان تحصل على رسمل ل tan مثل الرسم في الأسفل في متوسط من 10 الى 14 ثانية (يرجع لسرعة المعالج )

971511282.jpg

لكن لماذا قمت بصناعة هذا المحرك مع وجود محرك الأخ المميز عمر العادل !!

كما قلنا في بعض الردود سابقا الهدف هو الرسم الصحيح أولا ومن ثم السرعة فالحمدالله الرسم السليم توفر في هذا المحرك لإعتمادي على الرسم بالنقاط

والسرعة لزيادة السرعة كان هناك حلان الأول وهو الرسم في منطقة viewport التي يراها المستخدم ولله الحمد فقد نفذتها

والحل الثاني multithreading وسوف أفصل في هذا الآن

هناك حالات خاطئة تظهر مباشرة اثناء تشغيل البرنامج وأخرى خطرة قد لاتظهر الا بعد حين !!

والخاطئة هنا لاتظهر على انها خطأ من المترجم ولكنها رسائل من المكتبة نفسها اثناء التشغيل .

و التعاليم الخاطئة فهي ان تجعل محركين رسم يرسمان على آلة رسم واحدة في الحقيقة ان هذا الخطأ منعني من استخدام multythreading للرسم مع عدة محركات رسم .

زادة امكانية حدوث الحالة الخطرة وهي ارسال أمرين في ذات الوقت من الكائن نفسه طبعا في حال ان المحرك يعمل على معالج فرعي وحيد فإنك لن تجد هذه الأخطاء ولكن كلما زادت عدد المعالجات الفرعية المستخدمة لمحرك الرسم فإنه يزداد احتمال ان يرسل لك النظام رسالة عن وجود خطأ .

ولكن البطئ في الرسم حقيقة ليس قادم من محرك الرسم الذي ان كانت الرسمة تستهلك 15 ثانية فإنه يأخذ منها ثانيتين و 13 ثانية يستهلكها اللغة النصية في حساباته فلذلك قررت ان افرد معالجين فرعي لهذه الحسابات ومن ثم يرسمها المحرك ( المعالج الرئيسي للبرنامج)

وحاولت ان استخدم تقنية عامود الإشارات (semaphore ) للربط بين المحرك والقيم التي تم حسابها لزيادة سرعة الرسم ولكنها مثل mutex ولكن بشكل منطقي فهي تتعامل مع معالجين فرعيين بالكثير فلذلك اعتمدت على الإسلوب السابق والذي اختصر الوقت للربع وأقل ايضا .

هذه اهم ما بالمحرك بالإضافة الى systemAxis يسمح لك بتحديد عدد الوحدات لكل بكسل وبعض الميزات الأخرى .

codes.rar

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#28

محرك الأخ عمر المطور

نفس محركه فقط اضافة اسلوب الرسم بالنقاط وحل المعادلات على معالجين فرعي بالإضافة لزيادة السرعة الرسم سوف يصبح نقاط متفارقة للدالة الى مالانهاية

post-164107-1224762459_thumb.jpg

المحرك في المرفقات

equPlootter.rar

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#29

رائع جدا يا مصفوفة ، جهد طيب بارك الله فيك ..

بالفعل الرسم نطقة نقطة يحل المشكلة على حساب سرعة البرنامج ، على الرغم من ان السرعة ازدادت كثيرا مع الـ Thread :wink: ، لكن اصبحت مشكلة وهي كلما كبرت الفترة كلما بطئ البرنامج جدا ..

وللاسف الحل عن طريق التحليل العددي يتطلب الكثير من الشغل ، اولها التأكد من ان المعادلة ليست خطية ، وهذا يجب ان يأتي من البارسر واذا كانت خطية تحل مباشرة، الامر الاخر هو ان بعض الطرق التحليلية تحتاج الى اشتقاق المعادلة ، والطريقة التي رايتها افضل هي طريقة التنصيف Bisection حيث انها تتقارب دائما الى الحل ولا تحتاج الى اشتقاق، لكن طبعا يجب توفر نقطتين لكي نبدأ منها a,b بحيث تكون حاصل ضرب نتيجة تطبيق الدالة عليهما اقل من صفر ، وهذا يعني ان ابحث في اي معادلة مدخلة على هذين النقطين :blink: امر قد ياخد وقت ، وفي بعض الاحيان يكون للدالة اكثر من جذر root وبعض منها جذور مركبة :lol:

لذلك سنعتمد في النسخة الاولى من البرنامج على اخر نسخة تم وضعها اخي مصفوفة ، وسابدا بعمل الواجهة الرسومية عليها.

وفي النسخ القادمة ان شاء الله راح نطور البرنامج ، ونزيد السرعة ودقة الرسم ..

واقترح ان شاء الله ان نستخدم بعض البرامج الجاهزة ، مثل gnuplot وهو مستخدم في برنامج Octave لكي يقوم بعملية الرسم ..

ايضا يوجد بعض البارسر السريع جدا ، قد يخدمنا في تسريع النتجية ..

كم يوم كده واعود بالواجهة ، فالى اللقاء ..

#30

جميل جدا أحمد

نحنا صراحة من البرنامج لم نقصد به ان يكون برنامج تجاري معتمد حتى نستخدم برامج قوية جاهزة او نبرمج بإحترافية عالية !

نحن حبينا نحصل على التجربة والثقة والوقوف على أخطاءنا ومفاهيمنا السابقة (خبرة) فأعتقد لو خرجنا بهكذا هدف فإن

المشروع كان ناجح جدا بسبب كثرة المشاكل والأفكار والمحاولات العديدة .

وأعتبره انجاز اننا قمنا بهذا كله ابتداء من مستكشف المعادلات و محرك الرسم وصولا لنافذة البرنامج وأعتقد لو اعتمدنا على برامج جاهزة ماكان لنا لنحصل على الفوائد

التي حصلناها.

هذا مع تمنياتي لكم دوام النجاح والتوفيق .

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#33

ماقريت الجرايد :(

المصدر جريدة الرياضي

اقتباس
رامي أيوب - جدة

لقد الغت شركة مصفوفة مشروع رسم المعادلات بسبب المصاريف العالية وقلة المدخول من المشروع

وفي حديث اختص به لجريدة الرياضي ذكر مدير المركز الإعلاني لمجموعة شركة مصفوفة "احمد عصام" انه من المحتمل ارجاع

المشروع للواجهة في الربع الثالث من عام 2016 علما ان المشروع في مراحله الأخيرة .

وفي سؤال آخر عن هل يوجد خلاف بين مؤسسي الشركة رفض الأخير بإدلاء أي تعليق

منوها الى ان الجهد الذي بدله فريق العمل هو سر نجاح الشركة .

وقد اشاد الأخير بجريدة الرياضي واصفا اياها بأنها الأولى في الشرق الأوسط

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#34

:haha:

amdvsintel22.jpg

--i use AMD--

لا اله الا الله محمد رسول الله

أستعن بالله و لا تعجز

تابعنى على تويتر

***

#35

لا اله إلا الله ،،

2016 ، مممممممممـ ، كلها 8 سنين ، مفيش مشاكل :P

#36

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

اعتذر يا شباب على التأخير في المشروع وذلك بسبب بعض الظروف !

صورة للنسخة الاولى :

post-60254-1227096551_thumb.png

التحميل :

equPlotter.rar

اي اقتراحات ؟

الى اللقاء ،

#37

مشكلة الشائعات هذه الأيام منتشرة بشكل غير مقبول في الجرايد :rolleyes:

مبروووووووووووووووك

انتهينا من المشروع الجماعي .

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#38

هيييييييييييييييييييييييييييييييييييييه :ty: :rose: :D :thumb_up: B) :cash: :clapping: :lol:

أنا مش مصدق أن مشروعى تحول الى حقيقة

هيييييييييييييييييييييييييييييييييييه

معلش أخى Sudanix ، زر الشكر لا يعمل عندى ،، اسف جداً ،، لكن احيييييييييك على هذا العمل أكثر من رائع :D

#39

الان أنا حملته و ترجمته و جربته ،،

عمل أكثر من رائع أخى أحمد على الواجهة ،، بالطبع نشكر الأخ محمد على مجهوده الغير عادى فى البرنامج ،،

الملاحظات :

1- بطئ جداً ، ما هو السبب ؟ اعتقد اننا فى التجارب وصلنا لنتائج اسرع من ذلك

2- الواجهة كبيرة جداً على البرنامج ،، عدد الـ Widgets مقارنة بحجم النافذة يعتبر حجم غير مناسب ،،

3- هناك خطأ لغوى فى Interval ، ارجو تصحيحها

4- أتمنى ان يكون هناك Icon للبرنامج

5- أرجو ان يكون Style البرنامج هو QPlastiqueStyle

هذه كل ملاحظاتى الان ،، طبعاً انا لن اقوم بتعديل اى شئ الا بعد موافقتكم جميعا على الأقتراحات و هناك اشياء لا استطيع الاقتراب منها (QMain Window) لجهلى كيفية التعامل معها تمااااااااما

بالطبع اشكركم مشة اخرى على المجهود الجبار فى البرنامج ،،

وفقكم الله ،،

#40

لأي حد بطيئ

نعم مسموح للكل بالتعديل للوصول لأفضل نتيجة (صوتي)

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#41

slow for vry bad level

slower than the experiments by about 3 or 4 times

i think u made some modifications on the last version of my graphengine after u have modified it for the first time

i saw vry new things in the code of the graphengine class

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

i have question , why Bro. Ahmed Essam (sudanix) , wrote two classes for the GUI ??

#42

أخى أحمد عصام SudaNix ،،

أحييك على عملك الرائع ،، لكن هناك شئ ،، الم يكن من الواجب ان تقولوا لى انكم سوف تستخدمون صنف غير اللى انا كتبته اللهم الاثنين ليهم نفس الاسم ؟

عندما نظرت الى الكود ،، وجدت تعديل كامل (ليس تعديل انما تغيييير كامل) لدالة drawFunction() الخاصة برسم المعادلات ، دالة غير اللى انا كتبتها تماماً ،

لذلك انا انسحب من هذا المشروع ،،،

وفقكم الله فى النسخ القادمة ،،

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…