تم تحديث مرفقات المشاركه 136
الإضافات
1 - تم الإنتهاء من الفئه Vector2D
2 - تم اضافة الملف test_Vector2D لفولدر tests.
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
تم تحديث مرفقات المشاركه 136
الإضافات
1 - تم الإنتهاء من الفئه Vector2D
2 - تم اضافة الملف test_Vector2D لفولدر tests.
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
اقتباس@ الاخ :hunterxhunter ، يمكن لأي عضو أن يقوم بالمهمة ، لاتضغط على نفسك .. فقط أحببنا أن تشاركنا بشيء regular_smile.gif ، لذلك يمكنك المشاركة بأي وقت في المشروع ، أو حتى تأجيل المشاركة لنسخة مقبلة 0.2 .
شكرا لتفهمك أخي عبدالله
يبدوا أني سوف ااجل المشاركه حتى النسخه 0.2 حتى لا أعطل عمل الفريق
بالتوفيق شباب
قمت بإضافة هذا الموضوع داخل منتدى الـ C++ و هو خاص بالتعامل مع المؤشرات و ادارة الذاكره بشكل تلقائى من المترجم.
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
السلام عليكــم ورحمـة الله وبركاتــه ،،
يا اخوان ما شاء الله انشغلت كم يوم ورجعت وشاعر اني غبت خمس سنين :D
طبعا بعد محاولتي تتبع ما جرى اتمني التالي:
أولا : أرجو ان لا تكون المواضيع طويله لذلك يا ليت لو اننا افردنا موضوع خاص بال implementation وتوقفنا في هذا الموضوع عند المواصفات.
ثانيا : أرجو عندما يتسائل احدنا عن موضوع معين فليفرد له موضوع خاص حتى نراه جميعا ويستفيد منه الكل ولا يربك الموضوع الاساسي.
ثالثا: بما ان الاخ ahmad_n3na3 لم يبقي سوى ال Math وال Random في جافا لذلك يمكنني العمل عليها.
وعند الانتهاء سوف اقوم بتحويل جميع هذه الفئات الى J2ME.
تم تعديل هذه المشاركة بواسطة muqawem في 7 أكتوبر 2009 في 23:10
عندما بدءت فى العمل فى الفئه Triangle و جدت ان المترجم يظهر لى رساله خطأ فى الداله getBoundCircle الموجوده داخل الملف Rectangle.h و عند عمل exclude لهذا الملف من المشروع و وقف جميع الدوال التى يتعامل معها تتم الترجمه بشكل سليم ارجو ان كان احدكم وجد حلا لهذه المشكله ان يعلمنى حتى اكتب الكود للداله getBoundRectangle لأنى بحثت كثيرا و لا اعرف سبب المشكله.
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
اقتباسو جدت ان المترجم يظهر لى رساله خطأ فى الداله getBoundCircle الموجوده داخل الملف Rectangle.h
ممكن لأنك تستخدم الصنف Circle داخل الصنف Rectangle
وأيضا تستخدم الصنف Rectangle داخل الصنف Circle
ممكن إدا مسحت السطر التالي من الملف Circle.h
Rectangle<T> getBoundRect();
يختفي الخطأ
تم تعديل هذه المشاركة بواسطة hunterxhunter في 8 أكتوبر 2009 في 07:19
كلامك صحيح اخى hunterxhunter
لقد اكتشفت سبب هذا الخطأ منذ قليل و لكن الحل ليس بحذف اى من الدوال و لكن بحذف Include الخاصه بأيهم من الأخر و وضع تصريح لأيهما داخل الأخر.
لقد قمت بحذف السطر
#include "Rectangle.h"
من الفئه Circle و قمت بإضافة
template<typename T> struct Rectangle;
و قد عملت بشكل جيد.، شكرا لك.
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
اقتباسثالثا: بما ان الاخ ahmad_n3na3 لم يبقي سوى ال Math وال Random في جافا لذلك يمكنني العمل عليها.
نسيت ان هذه الفئات موجوده اصلا في جافا, عذرا...
نعم أخ مقاوم ، هي توجد .. ولكن عملت لها تغليف باستثناء Math لا نحتاج الى تغليفه .
من المفترض أن ننتهي اليوم ان شاء الله .. أو غداً على أقصى تقدير ، سنبدأ في المرحلة الثانية يوم السبت ان شاء الله ان لم يكن هناك مانع ؟!
اقتباسأولا : أرجو ان لا تكون المواضيع طويله لذلك يا ليت لو اننا افردنا موضوع خاص بال implementation وتوقفنا في هذا الموضوع عند المواصفات.
سيحدث هذا مع بعض المواضيع الأطول .. حيث سيكون هناك موضوع للجافا واخر للـ j2me .. ام الموضوع هذا فهو قصير بالمقارنة مع ما سيأتي :) .
لانريد أن نكثر من المواضيع حتى لايتشتت الاعضاء .. بل كلما اجتمع الاعضاء على موضوع واحد سيسهل برمجته ومناقشة خوارزمياته .
اقتباسثانيا : أرجو عندما يتسائل احدنا عن موضوع معين فليفرد له موضوع خاص حتى نراه جميعا ويستفيد منه الكل ولا يربك الموضوع الاساسي.
المواضيع كثيرة .. لذلك من الافضل مناقشتها هنا حتى يمكن بسهولة تتبع الموضوع وان لايضيع الاعضاء بسبب كثرة المواضيع .
تقريبا الان انتهينا .. بقي أمور بسيطة .
تم تعديل هذه المشاركة بواسطة الشمري في 8 أكتوبر 2009 في 13:35
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
لا مانع لدي
و يفضل أن نبدا المرخلة الثانية في موضوع جديد كما قال الأخ muqawem
الايميل غير صحيح
يرجى تصحيح الايميل برسالة لأحد مدراء المنتدى
أخ أحمد ، هل انتهيت من أي كلاس ؟
أظن بعض الكلاسات صعبة نوعا ما .. خاصة Line2D فيها رياضيات كثيرة ، يمكنك الاستفادة من مشاركة الاخ محمد علاء السابقة ، أو يمكنك اضافة ما انتهيت منه .. والبقية سنكملها معاً .. بما أن نسخة السي بلس تبدو مكتملة .. يمكننا الاستفادة منها في الجافا .
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
الحمد لله أنهيت العمل علي الكلاس line2d & point2d و احاول أنهي circle وtriangle اليوم ورفعهم مرة واحدة
وإن لم أستطع سأرفع ما إنتهيت منه اليوم بإذن الله
وأسف على التأخير
تم تعديل هذه المشاركة بواسطة ahmad_n3na3 في 8 أكتوبر 2009 في 15:46
الايميل غير صحيح
يرجى تصحيح الايميل برسالة لأحد مدراء المنتدى
السلام عليكم
هذا ما أنجزته إلى اﻷن
الفئة Point2D و الفئة /Line2D
أسف على تاخري ولكن عملي والمعادلات سبب تأخري
وتبقى الفئتين الأخريين جاري العمل عليهما والله الموفق
تم تعديل هذه المشاركة بواسطة ahmad_n3na3 في 8 أكتوبر 2009 في 21:18
الايميل غير صحيح
يرجى تصحيح الايميل برسالة لأحد مدراء المنتدى
كنت سوف أسأل عن ملفات الجافا ولكن وصلت :)
أحاول أن العمل في ال C# ولكن يبدو أن هنالك مشكلة في تطبيق ال Operator Overloading مع ال Generics!!!
حيث ان دعم boost سيكون فى الإصدار الثانى من المحرك لذا فإننا نحتاج لحل سريع لموضوع القيم العائده من الدوال و كيفية جعلها Null.
نبذه مختصره عن المشكله قبل تقديم حلى البسيط : القيمه المعاده من بعض الدوال قد تكون Null و لكن فى حالتنا هذه الدوال تعود بكائن و ليس مؤشر له لذا لا نستطيع اعادة nulldata او NULL.
حلى هو ببساطه انى قمت بصنع الفئه Nullable<T> و شكلها كالتالى
[color= #007f00;]#ifndef CORE_NULLABLE_H
[color= #007f00;]#define CORE_NULLABLE_H
[color= #007f00;]#include "..AndalusEngine.h"
[color= #0000ff;]template [color= #000000;]<[color= #0000ff;]typename T[color= #000000;]>
[color= #0000ff;]struct Nullable
[color= #000000;]{
[color= #0000ff;]static [color= #0000ff;]const Nullable[color= #000000;]<T[color= #000000;]> Null;
Nullable[color= #000000;](T[color= #000000;]* o,[color= #0000ff;]bool keepalive [color= #000000;]= [color= #0000ff;]false[color= #000000;]) [color= #000000;]: obj[color= #000000;](o[color= #000000;]),keep[color= #000000;](keepalive[color= #000000;]) [color= #000000;]{[color= #000000;]}
~Nullable[color= #000000;]([color= #000000;])
[color= #000000;]{
[color= #0000ff;]if [color= #000000;]([color= #000000;]!keep[color= #000000;])
[color= #000000;]{
[color= #0000ff;]delete obj;
obj[color= #000000;]=nulldata;
[color= #000000;]}
[color= #000000;]}
operator T[color= #000000;]*[color= #000000;]([color= #000000;]) [color= #0000ff;]const
[color= #000000;]{[color= #0000ff;]return obj;[color= #000000;]}
operator T [color= #000000;]([color= #000000;]) [color= #0000ff;]const
[color= #000000;]{[color= #0000ff;]return [color= #000000;]*obj;[color= #000000;]}
T[color= #000000;]& operator[color= #000000;]*[color= #000000;]([color= #000000;]) [color= #0000ff;]const
[color= #000000;]{ [color= #0000ff;]return [color= #000000;]*obj; [color= #000000;]}
T[color= #000000;]* operator[color= #000000;]-[color= #000000;]>[color= #000000;]([color= #000000;]) [color= #0000ff;]const
[color= #000000;]{ [color= #0000ff;]return obj; [color= #000000;]}
[color= #0000ff;]private[color= #000000;]:
T[color= #000000;]* obj;
[color= #0000ff;]bool keep;
[color= #000000;]};
[color= #0000ff;]template [color= #000000;]<[color= #0000ff;]typename T[color= #000000;]>
[color= #0000ff;]const Nullable[color= #000000;]<T[color= #000000;]> Nullable[color= #000000;]<T[color= #000000;]>[color= #000000;]::[color= #808000;]Null [color= #000000;]= Nullable[color= #000000;]<T[color= #000000;]>[color= #000000;](nulldata[color= #000000;]);
[color= #007f00;]#endif // CORE_NULLABLE_Hفالنأخذ مثال بسيط على استخدامها و هو سيوضح الهدف منها و كيفية استخدامها
[color= #0000ff;]typedef Point2D[color= #000000;]<[color= #0000ff;]float[color= #000000;]> Point2Df;
Nullable[color= #000000;]<Point2Df[color= #000000;]> getPoint[color= #000000;]([color= #000000;])
[color= #000000;]{
[color= #0000ff;]return Nullable[color= #000000;]<Point2Df[color= #000000;]>[color= #000000;]( [color= #0000ff;]new Point2Df[color= #000000;]([color= #ff0000;]6, [color= #ff0000;]7[color= #000000;]) [color= #000000;]);
[color= #000000;]}
[color= #0000ff;]void main[color= #000000;]([color= #000000;])
[color= #000000;]{
Nullable[color= #000000;]<Point2Df[color= #000000;]> pt [color= #000000;]= getPoint[color= #000000;]([color= #000000;]);
[color= #0000ff;]if [color= #000000;]( pt [color= #000000;]== Nullable[color= #000000;]<Point2Df[color= #000000;]>[color= #000000;]::[color= #808000;]Null [color= #000000;])
return;
cout [color= #000000;]<< [color= #A31515;]"X = " [color= #000000;]<< pt[color= #000000;]-[color= #000000;]>X [color= #000000;]<< [color= #A31515;]", Y = " [color= #000000;]<< pt[color= #000000;]-[color= #000000;]>Y [color= #000000;]<< endl;
[color= #000000;]}الفئه Nullable تحتوى على مشيد يطلب معاملين اولهم الكائن الذى تم انشائه بـ new و المعامل الثانى هو bool فإذا كانت false فالقيمه المعاده من الداله بمجرد حذفها سيتم حذف الكائن الذى تحتويه اما إذا كانت true فسيبقى فى الذاكره.
ايضا تحتوى الفئه على بعض المعاملات التى تتيح سهوله فى التعامل معها مثل السهم او derefrence او cating، كذلك تحتوى الفئه على الثابت Null و الذى يستخدم فى المقارنه فى ما إذا الكائن الذى تحتويه الفئه Nullable هو Null ام لا.
ملحوظه : الفئه فى المرفقات و لتعمل قم بوضعها داخل الفولدر Core الخاص بالمشروع
و الله ولى التوفيق
تم تعديل هذه المشاركة بواسطة Muhammad alaa في 9 أكتوبر 2009 في 08:29
مدونتي: C++ Tips and Tricks
الفئة Circle
كيف أعرف ان الخط مماس للدائرة من دون نقطة تماس
والتقاطع أيضاُ
الايميل غير صحيح
يرجى تصحيح الايميل برسالة لأحد مدراء المنتدى
ahmad_n3na3 كتب:الفئة Circleكيف أعرف ان الخط مماس للدائرة من دون نقطة تماس
والتقاطع أيضاُ
لا أعرف خوارزمية معينة .. لكن الخوارزميات كثيرة .. سأبحث عن واحدة ان شاء الله .
لكن يمكنك تجاوزها لو لم تجد شيء سهل ..
انتهيت من كل شيء .. بقي Matrix سأعملها بالجافا .. والسي بلس اذا لم يكتب الكلاس أحد قبلي ؟
الان ارتفع ضغطي .. اغير الكود واضيف كود خاطئ لكن ما يترجم صح .. يتجاهل التعديلات .
هل يوجد سر في ملفات Inl ؟ هل لها اعدادات معينة ؟
جننتني
تم تعديل هذه المشاركة بواسطة الشمري في 9 أكتوبر 2009 في 20:58
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
اقتباسلا أعرف خوارزمية معينة .. لكن الخوارزميات كثيرة .. سأبحث عن واحدة ان شاء الله .
انا اعرف واحده لكنى لم استخدمها من قبل و لم اضعها من قبل لسبب انى كنت ابحث لك عن واحده اخرى اسهل لكن للأسف لم اجد اما بسبب انى ابحث بإسلوب خاطئ او انى استنفذت رصيدى من البحث
بالنسبه للطريقه التى لدى لقد وجدت صعوبه فى مجاراتها و ستعرف السبب بعد قليل.
فى مشاركه سابقه عرفنا ان دالة الخط المستقيم تأخذ الشكل التالى
اما دالة الدائره فتأخذ الشكل التالى
حيث ان r هو نصف القطر و xc هى الإحداثى السينى لمركز الدائره و x هى الإحداثى السينى لمكان نقطة ما على حافة الدائره و yc هو الإحداثى الصادى لمركز الدائره و y هو الإحداثى الصادى لنفس النقطة التى موجود على حافة الدائرة.
و حيث ان الخط هو مماس للدائره إذا فالمعادلتان عند نقطة معينه يتساويا لذا يمكن كتابتهم معا و لكن انتظر فمعادلة الدائره ليست مكتوبه بشكل يتيح تساويها مع معادلة الخط المستقيم، لذا لنقوم بإعادة تشكيلها:
بإرسال للجانب الاخر تصبح المعادله كالتالى
بأخذ الجذر من الطرف الثانى لحدف تربيع الطرف الأول تصبح المعادله
بنقل yc للطرف الأخر تصبح المعادله بشكلها نهائى هى
الأن المعادلتين مكتوبتين بشكل واحد لذا نقوم بمساواتهم ليصبحوا كالتالى
بإرسال b للطرف الأخر ثم القسمه على m تصبح المعادله
هنا توقفت و السبب فى ذلك انه فى الطرف الأخر كل المتغيرات سيتم ابدالها بقيمه ما عدا المتغير x الموجود تحت الجذر و بهذا ستقف المعادله حيث لن يمكن الحصول على نتيجه منها، فإن كانت لديك طريقه اسهل او حل لمشكله الطريقه المذكوره بالأعلى ارجو ان تشاركنا بها.
و الله ولى التوفيق
تم تعديل هذه المشاركة بواسطة Muhammad alaa في 10 أكتوبر 2009 في 08:13
مدونتي: C++ Tips and Tricks
السلام عليكــم ورحمـة الله وبركاتــه ،،
أولا الشكر لله ثم للاخ خلدون + أحمد + محمد علاء + hunter على مشاركتهم بالـ implementation ( أرجو أن لا اكون نسيتأحد ) .
الاخ أحمد و محمد علاء قاموا بجهد جبار .. عندما ترى المعادلات الرياضية التي يكتبون ستصاب بدوار البحر :D .. فما بالك بمن كتبها .. ماشاء الله عليهم .
هناك بعض النواقص ستكتمل اليوم .. أي مبرمج مسؤول عن كلاس ما .. لايجب أن يكمله بشكل كامل .. يمكنه تجاوز بعض الدوال .. لنراجعها لاحقا .. أيضا يمكنه الاستفادة من نسخ الكلاس باللغة الاخى ( جافا -سي بلس ) .. ليختصر الوقت .
في المرفقات التالي :
مشروع الفيجوال سي 2008 ، بالتالي لاحاجة لأن يتعب كل عضو نفسه في ترجمة الملفات واضافتها للمشروع .. كل شيء جاهز .. كل ما عليك اضافة الملفات في مكانها الصحيح مستقبلاً .. اذا تطوّعت لعمل كلاس معين .
المشروع قابل للترجمة بشكل مباشر ( وهو باعدادات مؤقتة لان الهدف تبسيط المشروع .. سنراجع اعدادات المشروع بعد أن ننتهي من المشروع ككل ) :
بعد أن تحمل المشروع لديك خيارين :
1- فتح المشروع من المجلد build/VC9 ... حيث يمكنك بعدها التطوير والتعديل والترجمة والاختبار ..
2-( هذه الخطو غير الزامية .. هي راجعة لك اذا لم تحب العمل على ملف المشروع الخاص بنا )
يمكنك الاستفادة من المجلدين Source و Test .. اذا كنت تعمل على مترجم اخر .. أو ترغب في اعدادات اخرى للمشروع ..فقط انشئ مشروع اخر وأضف الاعدادات اللازمة .. مثلا :
أضف مسار include هكذا :
AdditionalIncludeDirectories="../../source"
طبعا .. غير المسار بشكل مناسب .
- جميع الملفات الخاصة بالمحرك تكون داخل source او داخل مجلد فرعي في source .. مثل core .
- جميع التجارب تكون في مجلد test أو داخل مجلد فرعي داخله مثل core .
نسخة الجافا :
افتحه عن طريق برنامج Netbeans .
أيضا نفس الطريقة لدينا مجلدين :
src
و
tests
- اذا لديكم أي ملاحظة على المشاريع واعداداتها .. يمكن الان الحديث قبل أن نرفعها على svn .
- الهدف من ملفات المشروع ( جافا - سي بلس ) توحيد أسلوب العمل وازالة أي لبس .
- لاحظوا أننا نعمل داخل packages أو namespaces هكذا :
namespace Andalud{
namespace Core {
}
}package andalus.core;
بقية الكلاسات نتمنى أن ننهيها اليوم ان شاء الله .. وبنفس الوقت .. سنبدأ المرحلة الثانية .
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
اقتباسهنا توقفت و السبب فى ذلك انه فى الطرف الأخر كل المتغيرات سيتم ابدالها بقيمه ما عدا المتغير x الموجود تحت الجذر و بهذا ستقف المعادله حيث لن يمكن الحصول على نتيجه منها، فإن كانت لديك طريقه اسهل او حل لمشكله الطريقه المذكوره بالأعلى ارجو ان تشاركنا بها.
- لا أعرف بصراحة ان كانت الخوارزمية فعلا يمكن استنتاجها من هذه المعادلات ، أنت أدرى بذلك ، لكن بالنسبة لحل المعادلة أظنها سهلة .. ( بالراحة علي .. اخر معادلة حليتها قبل سنتين :) ) .
هنا :
تم تعديل هذه المشاركة بواسطة الشمري في 10 أكتوبر 2009 في 16:06
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
بالنسبة لمسألة تقاطع دائرة مع segment ..
http://cs4999.ci-fi.org/node/7
يستخدم المتجهات وأظن الفكرة سهلة ..
بالنسبة للمعادلة أخ محمد .. حاولت أحلها لكن خرجت بحدود كثيرة وصار حلّها معقد قليلا .
تم تعديل هذه المشاركة بواسطة الشمري في 10 أكتوبر 2009 في 17:04
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
اقتباسيمكنك أن تأخذ تربيع الطرفين لتتخلص من الجذر
الأمر ليس كما تتوقع اخى بتربيعك للطرفين لن يتم حذف الجذر من الطرف الثانى حيث انه جزء من الطرف الثانى و تربيع الكل غير تربيع الجزء خصوصا فى الجمع و الطرح بمعنى عند تربيعك للطرفين ستصبح المعادله كالتالى
ملحوظه : قمت بتغيير حرف الـ b إلى w حيث انه يوجد خطأ اثناء تحويل معادله latex تحتوى على حرف b يليها القوس '('. او على الأقل فى حالة هذه المعادله :blush:
و الله ولى التوفيق
تم تعديل هذه المشاركة بواسطة Muhammad alaa في 10 أكتوبر 2009 في 17:57
مدونتي: C++ Tips and Tricks
نعم أعرف ذلك .. لكن المشكلة هي بعد التخلص من الجذر .. ستجد أمامك عشرات الحدود :D .. لذلك من الأفضل أن تنساها وتبحث عن أخرى كما قلت :-) .
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
نقطه اخرى الداله getCenterPoint لابد بكل الأحوال تضمينها و السبب فى ذلك ان الدالتين getBoundCircle و getBoundRectangle يعتمدوا عليها اعتمادا كبيرا فى عملهم. لذا فانا احاول معها و لكن لى سؤال هل يعرف اى من الأعضاء موقع او برنامج يحتوى على امكانية رسم مثلث على grid الخاصه بـ 2d Cartesian coordinate .
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
لا أعرف برنامج معيّن ، لكن يمكن برمجته :-) ..
الان تعبان للغاية ، انتهيت من كلاس Matrix3x3 .. للغة الجافا مع التجارب .. يمكن تحويله الى السي بلس .. أو سأقوم بذلك غداً ..
أتمنى مراجعته لمن يملك الوقت .. يمكن تجد فيه أخطاء .. خاصة وأني غير معتاد على row-major .
- هناك بعض overloaded methods سأعملها ان شاء الله .
- لم أقوم بعمل دالة ايجاد محدد المصفوفة .
تم تعديل هذه المشاركة بواسطة الشمري في 10 أكتوبر 2009 في 21:44
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri