التطبيق مكتوب بلغة الدلفي النسخة XE8
1- محاكاة الفضاء:
- نبدأ تطبيق جديد من نوع دلفي متعدد الأجهزة ثم نختار إطار ثلاثي لأبعاد (3D)
- نضيف للإطار عنصر TPlane ثم نعدل الأبعاد حتى نحصل على المظهر المناسب.
- نقوم بإضافة عنصر TTextureMaterialSource ونختار الصورة النقطية التي تمثل الفضاء.
- نربط العنصر TPlane بالعنصر TTextureMaterialSource باستعمال الخاصية MaterialSource للعنصر TPlane
وبذلك نكون قد حاكينا الفضاء التي توجد به المجموعة الشمسية.
2- تمثيل الشمس وحركتها حول نفسها:
- نضيف عنصر TSphere نسميةSphere_soleil ونعدل الأبعاد ونجعلها مثلا (4×4×4)
- نعدل الموقع وزاوية الدوران حتى نحصل على الأوضاع المناسبة.
- نضيف عنصر TLightMaterialSource ونختار الصورة النقطية التي تمثل الشمس، يمكن الحصول على هذه الصور باستعمال محرك البحث غوغل.
- نربط بين العنصرين TSphere و TLightMaterialSource باستعمال الخاصية MaterialSource للعنصرTSphere
الفيديو التالي يمثل مراحل إنشاء هذا الجزء من التطبيق.
الفيديو التالي يمثل مراحل إنشاء هذا الجزء من التطبيق.
3- تمثيل بعض كواكب المجموعة الشمسية :
- نتبع نفس الخطوات المتبعة في محكاة الشمس .
- نضيف الكود التالي إلى الحدث OnRender للعنصر Sphere_soleil :
procedure TForm1.Sphere_soleilRender(Sender: TObject; Context: TContext3D);
begin
Sphere1.Position.X := a1 * cos(t1);
// مدار الكوكب
Sphere1.Position.Y := b1 * sin(t1);
caption:=format('%f:%f:%f',[Sphere1.Position.X,Sphere1.Position.Y,Sphere1.Position.z]);
t1:=t1+0.01
end;
الفيديو التالي يوضح الخطوات المتبعة لمحاكاة الكواكب.
يمكن إضافة كواكب أخرى وذلك بإدراج عناصر من نوع TSphere ، ثم نغير في قيم a و b في الحدث OnRender للعنصر Sphere_soleil.كما هو موضح في المثال التالي:
procedure TForm1.Sphere_soleilRender(Sender: TObject; Context: TContext3D);
begin
Sphere1.Position.X := a1 * cos(t1);
// 1مدار الكوكب
Sphere1.Position.Y := b1 * sin(t1);
Sphere2.Position.X := a2 * cos(t1);
// 2مدار الكوكب
Sphere2.Position.Y := b2 * sin(t1);
......
t1:=t1+0.01
end;