جدول المحتويات:

إرشادات البرمجة الشيقة للمصمم - ابدأ تشغيل صورتك (الجزء الثاني): 8 خطوات
إرشادات البرمجة الشيقة للمصمم - ابدأ تشغيل صورتك (الجزء الثاني): 8 خطوات

فيديو: إرشادات البرمجة الشيقة للمصمم - ابدأ تشغيل صورتك (الجزء الثاني): 8 خطوات

فيديو: إرشادات البرمجة الشيقة للمصمم - ابدأ تشغيل صورتك (الجزء الثاني): 8 خطوات
فيديو: تحدي المعرفة: جاهز لمراجعة الحاسب الآلي للصف الثالث الاعدادي ترم أول؟ استعد لأسئلة وأجوبة مثيرة! 2024, يونيو
Anonim
إرشادات برمجة شيقة للمصمم - احصل على صورتك قيد التشغيل (الجزء الثاني)
إرشادات برمجة شيقة للمصمم - احصل على صورتك قيد التشغيل (الجزء الثاني)

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

الخطوة 1: الحركة والوظيفة

دعني أعرض عليك عدة صور غير معروفة لتحفيز ذوقك.

ما هذا؟ الآن فقط احتفظ بهذا السؤال أولاً وأخيراً ستعرفه وتستخدمه.

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

كم عدد الوظائف التي يمكنك التعرف عليها من الصور أعلاه؟ ما نوع العلاقة التي تربطهم بالحركة؟ الآن دعنا نلتقط وظيفة تربيعية منها ، ونضيف بعض المعلمات بشكل عشوائي ونرى ما سيحدث. على سبيل المثال ، y = x² / 100.

هذا ما تبدو عليه صورة الوظيفة. انسخ الكود أدناه.

[cceN_cpp theme = "dawn"] تعويم x، y؛ إعداد باطل () {size (300، 300)؛ الخلفية (0) ؛ س = 0 ؛ } void draw () {stroke (255)؛ الوزن (2) ؛ y = pow (x، 2) / 100.0 ؛ // ستعود وظيفة pow إلى القوة n لرقم التعيين. (x، 2) يمثل مربع x. المعلمة الأولى هي الرقم الأساسي والثانية هي الفهرس. نقطة (س ، ص) ؛ x ++ ؛ } [/cceN_cpp]

تأثير الجري

بعد ذلك ، اختر دالة الخطيئة. الصيغة: y = 150 + sin (x).

انسخ الكود التالي.

[cceN_cpp theme = "dawn"] تعويم x، y؛ إعداد باطل () {size (300، 300)؛ الخلفية (0) ؛ س = 0 ؛ } رسم باطل () {y = ارتفاع / 2 + خطيئة (راديان (x)) * 150 ؛ // وظيفة راديان تحويل x إلى زاوية. x ++ ؛ السكتة الدماغية (255) ؛ الوزن (2) ؛ نقطة (س ، ص) ؛ } [/cceN_cpp]

تأثير الجري

هذا هو الرسم الذي نحصل عليه بعد تشغيل الكود. وهذه هي مسارات حركتهم. بالمقارنة مع السابق ، النتيجة واضحة. صورة الوظيفة تتوافق في الواقع مع مسار الحركة! انها بسيطة جدا بما فيه الكفاية. عليك فقط استبدال قيمة x و y في إحداثيات. المسار الأول الذي رسمناه يكافئ رسم الوظيفة y = x² / 100. بينما المسار الأخير يساوي رسم الوظيفة y = 150 + sin (x). لكن في البرنامج ، يكون اتجاه المحور y معكوسًا. لذلك ، مقارنة بالرسم الأصلي ، سيكون المسار مقلوبًا. الآن ، أعتقد أنه يجب أن يكون لديك شعور بأن بعض الأسئلة الصعبة التي ظلت تدور في رأسك لفترة طويلة قد تم حلها على الفور. إنه لأمر مدهش أن هذه الوظائف الرائعة التي تعلمناها من قبل يمكن استخدامها للتحكم في حركة الرسوم!

الخطوة 2: كتابة الوظيفة

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

لذلك ، يجب كتابة الصيغة أدناه في البرنامج على النحو التالي:

y = x² → y = pow (x، 2) أو y = sq (x)

y = x³ → y = pow (x، 3)

y = xⁿ → y = pow (x، n)

ص = 4ⁿ → ص = أسرى (4 ، ن)

y = logₑ² → y = log (2)

y = e² → y = exp (2)

ص = √5 → ص = الجذر التربيعي (5)

يمكنك أيضًا كتابة دالة بشكل عشوائي في البرنامج ومعرفة شكل مسار حركتها. تذكر أن تضع في اعتبارك نطاق حقل القيمة ومجال التعريف ، وإلا فسوف ينفد الرسم الخاص بك من شاشتك.

دالة مثلثية

الآن ، دعنا نذهب إلى أبعد من ذلك لمعرفة بعض كتابات الدوال المثلثية.

علينا أن ننتبه إلى أنه في البرنامج ، يتبنى إدخال معلمة الوظيفة بالنسبة للزاوية راديان. وهكذا يجب كتابة sin90 درجة في الخطيئة (PI 2). إذا لم تكن معتادًا على هذه الطريقة ، يمكنك استخدام الدالة randians لتحويل الزاوية إلى راديان مسبقًا ، ثم كتابة sin (راديان (90)).

استخدام درجات الوظيفة هو عكس ذلك نسبيًا. يمكنه تحويل راديان إلى زاوية. أدخل الطباعة (درجات (PI / 2)) مباشرة في منطقة التحرير ، وشاهد ما ستحصل عليه.

الخطوة 3: التحكم في حركة الرسوم بالوظيفة المثلثية

إليك حالة لتتمكن من رؤية التأثير الفعلي للحركة الرسومية.

[cceN_cpp theme = "dawn"] تعويم x، y؛ إعداد باطل () {size (700، 300)؛ } رسم باطل () {خلفية (234، 113، 107)؛ y = sin (راديان (x)) * 150 + 150 ؛ x ++ ؛ noStroke () ، القطع الناقص (س ، ص ، 50 ، 50) ؛ } [/cceN_cpp]

وظيفة الخطيئة هي وظيفة دورية. قيمته الدنيا هي -1 ، والقيمة القصوى هي 1. ارتفاع الشاشة 300. يُشار إلى y = sin (راديان (x)) * 150 + 150 ، وبالتالي فإن نطاق التغيير للقيمة y سيتم التحكم فيه جيدًا خلال 0 إلى 300.

دائرة الغزل

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

في الواقع لقد كشفوا بصريًا العلاقة بين إحداثيات المحيط والوظيفة المثلثية. الحركة في الصور أعلاه مدفوعة بالمتغير المستقل المتزايد باستمرار. اليسار هو صورة الدالة sin و cos ، واليمين يرمز إلى نقطة تقوم بحركة دائرية بعد تعيينها. أليست ذكية جدا؟ لم يعد غامضا بعد الآن. يمكنك استخدام الكود لتحقيق ذلك.

مثال بسيط:

[cceN_cpp theme = "dawn"] عائم x ، y ، r ، R ، زاوية ؛ إعداد باطل () {size (300، 300)؛ ص = 20 ؛ // قطر الدائرة R = 100 ؛ // نصف قطر مسار الحركة x = 0 ؛ زاوية = 0 ؛ ص = الارتفاع / 2 ؛ } رسم باطل () {خلفية (234، 113، 107)؛ ترجمة (عرض / 2 ، ارتفاع / 2) ؛ // انقل النقطة الأصلية إلى مركز الشاشة. noStroke () ، x = R * cos (زاوية) ؛ y = R * sin (زاوية) ؛ القطع الناقص (x ، y ، r ، r) ؛ زاوية + = 0.05 ؛ } [/cceN_cpp]

بحث! تظهر دائرة دوارة! هنا ، المتغير المستقل لم يعد في زيادة ثابتة بت تصبح زاوية (تساوي θ في الصورة). إنه موقف للزاوية. من بينها ، xy لها معامل مضروب نسبيًا R ، مما يؤدي إلى تمديد نصف قطر حركة الدائرة (R هو نصف القطر). إذا لم يتم ضرب R ، فسيكون مسار حركته محدودًا في النطاق من -1 إلى 1.

لماذا لا تستخدم x المتزايدة؟ وفقًا لخاصية الوظيفة نفسها ، فإن أي x داخل مجال التعريف لديه y الوحيد الذي يطابقه. لذلك في نظام إحداثيات البعد المستطيل ، لا يمكنك العثور على "وظيفة بسيطة" لرسم دائرة مباشرة. وهذا يعني أنه لا يمكننا استخدام هذا التنسيق بعد الآن.

y = (التعبير غير المعروف لـ x؟) ؛

س ++ ؛

لذلك علينا تغيير فكرتنا. اختر زاوية أخرى كمتغير مستقل ، ثم استخدم الدالة sin و cos لتحويلها إلى إحداثيات أفقية ورأسية.

x = R * cos (زاوية) ؛

y = R * sin (زاوية) ؛

زاوية + = 0.05 ؛

قد يتساءل البعض منكم عن سبب عرض مسار حركة الدائرة. وفقًا لتعريف الدالة المثلثية ، يمكننا بسهولة استنتاج أن الدالة sin هي نسبة الضلع المقابل إلى الوتر ؛ دالة cos هي النسبة المجاورة للوتر. بغض النظر عن مكان نقطة الدائرة ، فإن r (نصف القطر) سيبقى بدون تغيير. لذلك يمكننا استنتاج التعبير عن إحداثيات x وإحداثيات y.

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

بالطبع ، لا بأس إذا لم تتمكن من فهمها بالكامل. ما عليك سوى معرفة كيفية استخدامه لرسم دائرة. هذا نوع من "فكرة البرمجة" أيضًا. لاحقًا ، غالبًا ما نستدعي بعض الوحدات الموجودة التي صنعها آخرون لتحقيق نوع معين من الوظائف. فقط لا تدفع نفسك لمعرفة ذلك بالتفصيل.

ومع ذلك ، فإن التابعين sin و cos أمر شائع. إذا كنت تريد إنشاء مستوى أعلى ، فمن الأفضل أن تحاول التعرف عليه جيدًا. إذا كان هذا السؤال بحد ذاته يمكن أن يدفع أنفسنا إلى تعلم المزيد من المعرفة الرياضية ، فهناك أشياء أكثر إثارة في انتظارك لاستكشافها.

هذه صور وثيقة الصلة بالدالة المثلثية.

الخطوة 4: نظام تنسيق الحركة

التأثيرات السابقة كلها تتعلق بتغييرات إحداثيات الرسوم. نظام الإحداثيات نفسه ثابت. في الواقع يمكننا أن نجعل الإحداثيات تتحرك لتحقيق التأثير الحركي. هذا تمامًا مثلما يراقب الأشخاص على الشاطئ الأشخاص الآخرين في القارب. بالنسبة للأشخاص على متن القارب ، يكون القارب ثابتًا. ولكن ماذا لو كان القارب نفسه يتحرك ، فإن الأشخاص الموجودين في القارب يتحركون معه. الحالات الأولى تدور حول "الأشخاص الذين يركضون على متن القارب". في الواقع ، القارب لا يتحرك. فيما يلي بعض الوظائف الشائعة لتغيير نظام الإحداثيات.

وظيفة الترجمة

وظيفة الترجمة ، التي تحدثنا عنها سابقًا ، تستخدم لتحريك نظام إحداثيات الرسم أفقيًا.

تنسيق الاستدعاء:

ترجم (أ ، ب)

تشير المعلمة الأولى إلى الانتقال إلى الاتجاه الإيجابي لمحور x لوحدات البكسل. تشير المعلمة الثانية إلى الانتقال إلى الاتجاه الإيجابي لمحور y لـ b بكسل.

قارن بين الكودتين وحاول إيجاد أي فرق. (من أجل تبسيط التعليمات البرمجية ، يمكننا حذف حجم الوظيفة ، ويتم افتراض أن عرض الشاشة وارتفاعها هو 100.)

قبل أن نستخدم:

القطع الناقص (0 ، 0 ، 20 ، 20) ؛

بعد أن نستخدم:

ترجمة (50 ، 50) ؛

القطع الناقص (0 ، 0 ، 20 ، 20) ؛

تدوير الوظيفة

تنسيق الاستدعاء:

تناوب (أ)

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

قبل الاستعمال:

القطع الناقص (50 ، 50 ، 20 ، 20) ؛

بعد الاستعمال:

استدارة (راديان (30)) ؛

القطع الناقص (50 ، 50 ، 20 ، 20) ؛

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

مقياس الوظيفة

تنسيق الاستدعاء:

مقياس (أ)

يمكن لهذه الوظيفة تصغير نظام الإحداثيات. القيمة للقياس. عندما تكون المعلمة أكبر من 1 ، قم بالتكبير ؛ إذا كانت أقل من 1 ، فقم بالتصغير.

قبل الاستعمال:

القطع الناقص (0 ، 0 ، 20 ، 20) ؛

بعد الاستعمال:

مقياس (4) ؛

القطع الناقص (0 ، 0 ، 20 ، 20) ؛

يتم تكبير الدائرة في الصورة أعلاه إلى أربعة أضعاف الحجم الأصلي. يمكنك أيضًا استخدام معلمتين للتصغير في اتجاهات المحور x والمحور y بشكل منفصل.

مقياس (4 ، 2) ؛

القطع الناقص (0 ، 0 ، 20 ، 20) ؛

تراكب وظيفة التحويل

هنا ، التراكب هو كل شيء عن التغييرات المتعلقة بنظام الإحداثيات الحالي. بمعنى آخر ، يمكن فرض التأثيرات.

ترجمة (40 ، 10) ؛

ترجمة (10 ، 40) ؛

القطع الناقص (0 ، 0 ، 20 ، 20) ؛

تأثيره النهائي سوف يساوي

ترجمة (50 ، 50) ؛

القطع الناقص (0 ، 0 ، 20 ، 20) ؛

نفس وظيفة التدوير

استدارة (راديان (10)) ؛

استدارة (راديان (20)) ؛

القطع الناقص (50 ، 50 ، 20 ، 20) ؛

يساوي

استدارة (راديان (30)) ؛

القطع الناقص (50 ، 50 ، 20 ، 20) ؛

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

قبل الاستعمال:

القطع الناقص (50 ، 50 ، 50 ، 20) ؛

بعد الاستعمال:

ترجمة (50 ، 50) ؛

استدارة (راديان (45)) ؛

القطع الناقص (0 ، 0 ، 50 ، 20) ؛ // من أجل رؤية تغيير زاوية الدوران ، قمنا بعمل شكل بيضاوي.

قد يبدو التواء. عليك فقط أن تتدرب أكثر وستفهمها. (يمكنك أيضًا محاولة تغيير تسلسل وظيفة الترجمة والتدوير لمعرفة الفرق.)

حركة أفقية وحركة دائرية

في الحالات التالية ، سنحقق التأثير الحركي من خلال تغيير نظام الإحداثيات. في نفس الوقت ، أود أن أسألكم الرجوع إلى مثال الفصل السابق. في معظم الأوقات ، ستجد أنه من أجل تحقيق نوع معين من التأثير ، يمكنك استخدام طريقة مختلفة تمامًا.

الخطوة 5: الحركة الأفقية

[موضوع cceN_cpp = "فجر"]

int x ، y ؛ إعداد باطل () {size (300، 300)؛ س = 0 ؛ ص = الارتفاع / 2 ؛ } رسم باطل () {خلفية (234، 113، 107)؛ noStroke () ، ترجمة (س ، ص) ؛ القطع الناقص (0 ، 0 ، 50 ، 50) ؛ x ++ ؛ } [/cceN_cpp]

لم يتم تغيير إحداثي الدائرة ولكن تم تغيير نظام الإحداثيات الخاص بها.

استدارة الحركة

[cceN_cpp theme = "dawn"] تعويم r ، R ، زاوية ؛ إعداد باطل () {size (300، 300)؛ ص = 20 ؛ // أبعاد الدائرة R = 100 ؛ // Radius of motion track} رسم باطل () {الخلفية (234 ، 113 ، 107) ؛ ترجمة (عرض / 2 ، ارتفاع / 2) ؛ // انقل النقطة الأصلية إلى مركز الشاشة. تدوير (زاوية) ؛ noStroke () ، القطع الناقص (0، R، r، r) ؛ زاوية + = 0.05 ؛ } [/cceN_cpp]

أليست هي أكثر بساطة ووضوحًا من الدالة المثلثية؟ قد يكون لديك سؤال هنا. خذ الكود المتناوب كمثال. من الواضح أن وظيفة التحويل المشار إليها أعلاه نسبية وتسمح بالتراكب. إذا كتبنا ترجمة (عرض / 2 ، ارتفاع / 2) إلى رسم وظيفة ، فهذا لا يعني أن كل مرة تعمل وظيفة الرسم لمرة واحدة ، فإن نظام الإحداثيات سوف يتحرك مسافة في الاتجاه السفلي الصحيح من القاعدة الأصلية؟ بشكل معقول لن يبقى في وسط الشاشة إلى الأبد.

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

الوصول إلى حالة الإحداثيات

في بعض الأحيان ، لا نريد تغيير حالة نظام الإحداثيات استنادًا إلى الحالة السابقة. في هذا الوقت ، علينا استخدام الدالة pushMatrix و popMatrix. تظهر الوظيفتان عادة في شكل زوجين. وظيفة pushMatrix موجودة قبل popMatrix. لا يمكن استخدامها بمفردها ، أو ستفشل.

مثال:

[cceN_cpp theme = "الفجر"] pushMatrix () ؛ // مخزن حالة نظام الإحداثيات تترجم (50 ، 50) ؛ القطع الناقص (0 ، 0 ، 20 ، 20) ؛ popMatrix () ، // قراءة حالة نظام الإحداثيات بشكل صحيح (0 ، 0 ، 20 ، 20) ؛ [/cceN_cpp]

في هذا المثال ، قبل استخدام translate (50، 50) ، نستخدم الدالة pushMatrix. لتخزين الحالة الحالية لنظام الإحداثيات. هذا ، في نفس الوقت ، هو الوضع الأولي. بعد أن نرسم دائرة ، ثم ننفذ popMatrix ، ستعود إلى هذه الحالة. في هذا الوقت ، قم بتنفيذ وظيفة المستقيمة ، وستجد أنها لم تتعرض لتأثير وظيفة الترجمة بدلاً من ذلك ، فإنها ترسم مربعًا في الزاوية العلوية اليسرى من النقطة الأصلية.

إلى جانب ذلك ، تسمح الوظيفة pushMatrix و popMatrix بالتداخل.

على سبيل المثال

pushMatrix () ؛

pushMatrix () ؛

popMatrix () ،

popMatrix () ،

من أجل إظهار علاقتها بشكل حدسي ، نختار تنسيقًا مكثفًا.

حركة مشتركة أم حركة في حركة؟

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

مثل الجمع بين الحركة الأفقية والحركة الدوارة لنظام الإحداثيات. النقطة هنا هي في الواقع التحرك في اتجاه فقط.

[cceN_cpp theme = "dawn"] int x، y؛ زاوية تعويم إعداد باطل () {size (300، 300)؛ الخلفية (234 ، 113 ، 107) ؛ noStroke () ، س = 0 ؛ // عندما تكون القيمة الأولية لـ x 0 ، يمكننا إهمال هذه الجملة من التعليمات البرمجية. عند التصريح عن متغير ، القيمة الافتراضية هي 0. y = 0؛ // نفس ما ورد أعلاه. زاوية = 0 ؛ // نفس ما ورد أعلاه. } رسم باطل () {زاوية + = 0.25 ؛ ذ-- ؛ ترجمة (عرض / 2 ، ارتفاع / 2) ؛ pushMatrix () ؛ تدوير (زاوية) ؛ القطع الناقص (س ، ص ، 5 ، 5) ؛ popMatrix () ، } [/cceN_cpp]

وهناك حركة دائرية وتنسيق تحجيم النظام.

[cceN_cpp theme = "dawn"] تعويم x ، y ، زاوية ؛ إعداد باطل () {size (300، 300)؛ الخلفية (234 ، 113 ، 107) ؛ noStroke () ، } رسم باطل () {زاوية + = 0.01 ؛ س = الخطيئة (الزاوية) * 100 ؛ y = cos (زاوية) * 100 ؛ ترجمة (عرض / 2 ، ارتفاع / 2) ؛ pushMatrix () ؛ مقياس (1 + 0.1 * خطيئة (زاوية * 10)) ؛ القطع الناقص (س ، ص ، 5 ، 5) ؛ popMatrix () ، } [/cceN_cpp]

لا تنخدع به! تقوم نقطة الدائرة في الواقع بحركة دائرية. ليس من الصعب فهم ما إذا كنا نقارنه بالتدرج باستخدام كاميرا فيديو. تتحرك كاميرا الفيديو باستمرار للأمام أو للخلف وهي تصور نقطة في حركة دائرية.

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

الخطوة السادسة: الاستخدام الشامل

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

[cceN_cpp theme = "dawn"] تعويم x1 ، y1 ، x2 ، y2 ، r ، R ؛ زاوية تعويم 1 ، زاوية 2 ؛ إعداد باطل () {size (300، 300)؛ ص = 12 ؛ R = 120 ؛ زاوية 1 = 0 ؛ زاوية 2 = PI / 4 ؛ } رسم باطل () {خلفية (234، 113، 107)؛ noStroke () ، ترجمة (عرض / 2 ، ارتفاع / 2) ؛ زاوية 1 + = 0.02 ؛ زاوية 2 + = 0.06 ؛ x1 = R * sin (زاوية 1) ؛ y1 = R * cos (زاوية 1) ؛ x2 = R / 2 * sin (زاوية 2) ؛ y2 = R / 2 * cos (زاوية 2) ؛ القطع الناقص (x1 ، y1 ، r / 2 ، r / 2) ؛ القطع الناقص (x2 ، y2 ، r ، r) ؛ القطع الناقص (-x1 ، -y1 ، r / 2 ، r / 2) ؛ القطع الناقص (-x2 ، -y2 ، r ، r) ؛ القطع الناقص (x1 ، -y1 ، r / 2 ، r / 2) ؛ القطع الناقص (x2 ، -y2 ، r ، r) ؛ القطع الناقص (-x1 ، y1 ، r / 2 ، r / 2) ؛ القطع الناقص (-x2 ، y2 ، r ، r) ؛ السكتة الدماغية (255) ؛ الوزن (3) ؛ خط (x1 ، y1 ، x2 ، y2) ؛ سطر (-x1 ، -y1 ، -x2 ، -y2) ؛ سطر (x1، -y1، x2، -y2) ؛ سطر (-x1 ، y1 ، -x2 ، y2) ؛ } [/cceN_cpp]

لا يحتوي هذا المثال على أي معرفة تتجاوز الفصل السابق الذي قدمناه.

لأي نقاط تطابق؟ أي خطوط تطابق؟ لا استطيع معرفة ذلك ايضا. لكنني أتذكر أنها مشتقة من جزء صغير من التعليمات البرمجية.

هذه هي طبيعة حركتها. خطوط الباقي هي مجرد تأثير مرآة.إذا تابعت اتباع هذه الإرشادات ، فيمكنك إنشاء إصدار محدث وإضافة وحدة تحكم إلى الرسم الخاص بك لتغيير حالة حركة الرسوم في الوقت الفعلي.

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

الخطوة 7: النهاية

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

[cceN_cpp theme = "الفجر"] تعويم الحاجب ، الأذن ، العين ، الوجه ؛ إعداد باطل () {size (500، 500)؛ } رسم باطل () {خلفية (200، 0، 0)؛ browX = 150 + sin (frameCount / 30.0) * 20 ؛ earD = 180 + sin (frameCount / 10.0) * 20 ؛ EyeD = 60 + sin (frameCount / 30.0) * 50 ؛ وجه D = 300 ؛ الوزن (8) ؛ القطع الناقص (175، 220، earD، earD) ؛ القطع الناقص (العرض - 175 ، 220 ، الأذن ، الأذن) ؛ مستقيم (100 ، 100 ، وجه D ، وجه D) ؛ خط (browX ، 160 ، 220 ، 240) ؛ الخط (العرض-الحاجب ، 160 ، العرض -220 ، 240) ؛ ملء (عشوائي (255) ، عشوائي (255) ، عشوائي (255)) ؛ القطع الناقص (175 ، 220 ، العين D ، العين D) ؛ القطع الناقص (العرض -175 ، 220 ، العين D ، العين D) ؛ ملء (255) ؛ نقطة (عرض / 2 ، ارتفاع / 2) ؛ مثلث (170 - cos (frameCount / 10.0) * 20 ، 300 - sin (frameCount / 10.0) * 20 ، عرض - (170 + cos (frameCount / 10.0) * 20) ، 300 + sin (frameCount / 10.0) * 20 ، 250 ، 350) ؛ } [/cceN_cpp]

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

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

هذه المقالة مأخوذة من المصمم Wenzy.

الخطوة الثامنة: القراءات النسبية:

إرشادات البرمجة الشيقة للمصمم - معالجة اللمسة الأولية

إرشادات البرمجة الشيقة للمصمم - قم بإنشاء برنامج المعالجة الأول الخاص بك

إرشادات برمجة شيقة للمصمم - ابدأ تشغيل صورتك (الجزء الأول)

إذا كان لديك أي أسئلة ، يمكنك إرسال بريد إلكتروني إلى [email protected].

هذه المقالة من:

موصى به: