بسم الله الرحمن الرحيم :
سأعطي هنا فكرة مبدئية عن فائدة الـ Expression والتي تفيد كثيراً في أعمال الـ Dynamics وأعمال الـ Animation غالباً .
=======================Expression====================
في البداية أريد أن أعطي فكرة بسيطة عن الـ Expression لنقل أنا نريد أن أن نقوم بإنشاء كفر يتحرك باستدارة على محور الـ y مهما زادت عدد الفريمات في البداية لا بد ان نفهم قانونان يتعلقان بكتابة الـ Expression :-
1- البرنامج يفرق بين الحروف الكبيرة والصغيرة كحالة الـ c++ .
2- حين نكتب إختصارات نكتبها small وحين نكتب السطر كاملاً نكتب بداية الكلمات بالـ capital عدا الكلمة التي بعد النقطة مباشرة .
مثال على النقطة الثانية :
حين نريد أن ندير الكفر على محور الـ Y باعتبار أن اسم الكرة pSphere1 نكتب :-
اختصار:
pSphere1.ry=time;
بدون اختصار :
pSphere1.rotateY=time;
كلا الحالتين النتيجة واحدة ونلاحظ في الثانية أننا كتبنا الـ Y بالـ Capital حيث أنها تعتبر مستقلة عن الكلمة rotate ولم نكتب Rotate بالـ Capital لأنها بعد النقطة وهذا يوضح قصدي في القانون الثاني .
تكتب الـ expressions في :
windows
animation editors
Expression Editor
تضع البرمجة ثم تختار edit
-----------
لنر الآن كيف نحركها على المحورين y x :
pSphere1.rotateY=time;
pSphere1.rotateX=time;
العنصر time يعني رقم الثانية في المشهد الحالي وهو يتغير حين نبدأ العرض أي أننا حين نذهب إلى أول المشهد تكون قيمة time هي الصفر وبفرض أننا في نظام pal إذا بعد 25 فريم ستكون قيمة time هي 1.
إذا time هو قيمة تتغير إذاً لنسمه متغير variable ولنبق هذه المعلومة في أذهاننا .
نطبق العمليات الحسابية ببساطة شديدة :
pSphere1.rotateY=time*9;
+ للجمع
- للطرح
* للضرب
/ للقسمة
حسناً نريد الآن أن نجعل سرعة دوران الكرة تزداد مع ازدياد الوقت :
في آخر مثال حين ضربنا time بالعدد 9 ستبقى السرعة ثابتة حتى ولو كان المتغير time غير ثابت حسن لنستوضح :
رقم الـ time---------------- مضروباً في---------------- الناتج
1------------------------------- 1----------------------- 1
2 -------------------------------1 -----------------------2
3------------------------------- 1----------------------- 3
15 -----------------------------1----------------------- 15
37----------------------------- 1----------------------- 37
مقدار ازدياد القيمة هو واحد وهو ما نسميه بـ factor
1------------------------------ 9----------------------- 9
2------------------------------ 9----------------------- 18
3 ------------------------------9 ----------------------27
15----------------------------- 9--------------------- 135
الـ factor هنا يقدر بالقيمة 9 وهنا نرى أن الازدياد لا يزال ثابتاً .
إذاً كيف نجعل السرعة تزداد مع ازدياد الوقت لابد أن نجعل قيمة الـ factor متغيرة أيضاً لدينا حلين أولاً أن ننشئ متغير وهذا لم يحن وقته الثاني أننا نضرب الـ time بالـ time !!! .
أي نضرب متغير في متغير لنر :
1 -----------------------------1---------------------- 1
2 -----------------------------2 --------------------- 4
3----------------------------- 3---------------------- 9
15 --------------------------15-------------------- 225
نلاحظ أن النتيجة تكبر شيئاً فشيئاً .
إذاً نكتب :
pSphere1.rotateY=time*time;
دعنا نتعمق قليلاً :-
----النتيجة النهائية :-
pSphere1.rotateX=time*time;
pSphere1.rotateY=time*time;
pSphere1.scaleX=time*1;
pSphere1.scaleY=time*1;
pSphere1.scaleZ=time*1;
if (time>6)
{
pSphere1.scaleX=6;
pSphere1.scaleY=6;
pSphere1.scaleZ=6;
print("Stopped");
}
بعد مرور ست ثوان سيتوقف ازدياد حجم الكرة وستطبع كلمة stopped في شريط المساعدة .
هذا الجزء الأول من الدرس على حسب الفائدة والاستيعاب سأرى إمكانية وضع درس آخر .
تحياتي
أسد الله .
سأعطي هنا فكرة مبدئية عن فائدة الـ Expression والتي تفيد كثيراً في أعمال الـ Dynamics وأعمال الـ Animation غالباً .
=======================Expression====================
في البداية أريد أن أعطي فكرة بسيطة عن الـ Expression لنقل أنا نريد أن أن نقوم بإنشاء كفر يتحرك باستدارة على محور الـ y مهما زادت عدد الفريمات في البداية لا بد ان نفهم قانونان يتعلقان بكتابة الـ Expression :-
1- البرنامج يفرق بين الحروف الكبيرة والصغيرة كحالة الـ c++ .
2- حين نكتب إختصارات نكتبها small وحين نكتب السطر كاملاً نكتب بداية الكلمات بالـ capital عدا الكلمة التي بعد النقطة مباشرة .
مثال على النقطة الثانية :
حين نريد أن ندير الكفر على محور الـ Y باعتبار أن اسم الكرة pSphere1 نكتب :-
اختصار:
pSphere1.ry=time;
بدون اختصار :
pSphere1.rotateY=time;
كلا الحالتين النتيجة واحدة ونلاحظ في الثانية أننا كتبنا الـ Y بالـ Capital حيث أنها تعتبر مستقلة عن الكلمة rotate ولم نكتب Rotate بالـ Capital لأنها بعد النقطة وهذا يوضح قصدي في القانون الثاني .
تكتب الـ expressions في :
windows
animation editors
Expression Editor
تضع البرمجة ثم تختار edit
-----------
لنر الآن كيف نحركها على المحورين y x :
pSphere1.rotateY=time;
pSphere1.rotateX=time;
العنصر time يعني رقم الثانية في المشهد الحالي وهو يتغير حين نبدأ العرض أي أننا حين نذهب إلى أول المشهد تكون قيمة time هي الصفر وبفرض أننا في نظام pal إذا بعد 25 فريم ستكون قيمة time هي 1.
إذا time هو قيمة تتغير إذاً لنسمه متغير variable ولنبق هذه المعلومة في أذهاننا .
نطبق العمليات الحسابية ببساطة شديدة :
pSphere1.rotateY=time*9;
+ للجمع
- للطرح
* للضرب
/ للقسمة
حسناً نريد الآن أن نجعل سرعة دوران الكرة تزداد مع ازدياد الوقت :
في آخر مثال حين ضربنا time بالعدد 9 ستبقى السرعة ثابتة حتى ولو كان المتغير time غير ثابت حسن لنستوضح :
رقم الـ time---------------- مضروباً في---------------- الناتج
1------------------------------- 1----------------------- 1
2 -------------------------------1 -----------------------2
3------------------------------- 1----------------------- 3
15 -----------------------------1----------------------- 15
37----------------------------- 1----------------------- 37
مقدار ازدياد القيمة هو واحد وهو ما نسميه بـ factor
1------------------------------ 9----------------------- 9
2------------------------------ 9----------------------- 18
3 ------------------------------9 ----------------------27
15----------------------------- 9--------------------- 135
الـ factor هنا يقدر بالقيمة 9 وهنا نرى أن الازدياد لا يزال ثابتاً .
إذاً كيف نجعل السرعة تزداد مع ازدياد الوقت لابد أن نجعل قيمة الـ factor متغيرة أيضاً لدينا حلين أولاً أن ننشئ متغير وهذا لم يحن وقته الثاني أننا نضرب الـ time بالـ time !!! .
أي نضرب متغير في متغير لنر :
1 -----------------------------1---------------------- 1
2 -----------------------------2 --------------------- 4
3----------------------------- 3---------------------- 9
15 --------------------------15-------------------- 225
نلاحظ أن النتيجة تكبر شيئاً فشيئاً .
إذاً نكتب :
pSphere1.rotateY=time*time;
دعنا نتعمق قليلاً :-
----النتيجة النهائية :-
pSphere1.rotateX=time*time;
pSphere1.rotateY=time*time;
pSphere1.scaleX=time*1;
pSphere1.scaleY=time*1;
pSphere1.scaleZ=time*1;
if (time>6)
{
pSphere1.scaleX=6;
pSphere1.scaleY=6;
pSphere1.scaleZ=6;
print("Stopped");
}
بعد مرور ست ثوان سيتوقف ازدياد حجم الكرة وستطبع كلمة stopped في شريط المساعدة .
هذا الجزء الأول من الدرس على حسب الفائدة والاستيعاب سأرى إمكانية وضع درس آخر .
تحياتي
أسد الله .
تعليق