رسومات السلحفاة

في مجال رسومات الحاسوب ، تُعدّ رسومات السلحفاة رسومات متجهة تستخدم مؤشرًا نسبيًا (يُسمى " السلحفاة ") على مستوى إحداثيات ديكارتية (محوري س و ص). تُعتبر رسومات السلحفاة ميزة أساسية في لغة برمجة Logo . [ 1 ] كما أنها طريقة بسيطة وتعليمية للتعامل مع الإطارات المتحركة .

ملخص

رسم متحرك يوضح كيفية استخدام السلحفاة لإنشاء رسومات من خلال الجمع بين أوامر التقدم للأمام والانعطاف أثناء ملامسة القلم للورقة
حلزون مرسوم باستخدام خوارزمية رسومات السلحفاة التكرارية
نمط رسومي لسلحفاة مرسوم باستخدام برنامج بايثون

للسلحفاة ثلاث سمات: الموقع، والاتجاه، والقلم. وللقلم أيضاً سمات: اللون، والعرض، وحالة التشغيل/الإيقاف (وتسمى أيضاً لأسفل ولأعلى ) . [ 2 ]

تتحرك السلحفاة بأوامر نسبية لموقعها، مثل "تحرك للأمام عشر خطوات" و"استدر يسارًا 90 درجة". كما يمكن التحكم بالقلم الذي تحمله السلحفاة، من خلال تفعيله أو تحديد لونه أو عرضه. يستطيع الطالب فهم حركة السلحفاة (والتنبؤ بها وتفسيرها) بتخيل ما سيفعله لو كان مكانها. أطلق سيمور بابيرت على هذا النوع من التفكير اسم "الاستدلال التوافقي الجسدي". [ 3 ]

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

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

تاريخ

غالبًا ما ترتبط رسومات السلحفاة بلغة برمجة Logo . [ 4 ] أضاف سيمور بابيرت دعمًا لرسومات السلحفاة إلى Logo في أواخر الستينيات لدعم نسخته من روبوت السلحفاة ، وهو روبوت بسيط يُتحكم فيه من محطة عمل المستخدم، ومصمم لتنفيذ وظائف الرسم الموكلة إليه باستخدام قلم صغير قابل للسحب مُدمج في جسم الروبوت أو مُثبت عليه. يختلف شكل هندسة السلحفاة نوعًا ما عن الهندسة الديكارتية المُعنونة ( x , y ) ، إذ يعتمد بشكل أساسي على المتجهات (أي الاتجاه النسبي والمسافة من نقطة البداية) مقارنةً بالأنظمة المُعنونة بالإحداثيات مثل الصور النقطية أو الرسومات النقطية. عمليًا، يُحاكي استخدام هندسة السلحفاة بدلًا من نموذج أكثر تقليدية منطق الحركة الفعلي لروبوت السلحفاة. تُمثل السلحفاة تقليديًا، وفي أغلب الأحيان، تصويريًا إما بمثلث أو برمز سلحفاة (مع أنه يمكن تمثيلها بأي رمز).

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

امتداد إلى ثلاثة أبعاد

رسومات ثلاثية الأبعاد للسلاحف تم إنشاؤها باستخدام برنامج Cheloniidae Turtle Graphics
نمط مرسوم باستخدام برنامج بايثون

يمكن توسيع نطاق الأفكار الكامنة وراء رسومات السلحفاة لتشمل الفضاء ثلاثي الأبعاد. ويتحقق ذلك باستخدام أحد نماذج الإحداثيات المختلفة. يُعدّ النموذج الديكارتي الدوراني، كما هو الحال مع السلحفاة ثنائية الأبعاد الأصلية، نموذجًا شائعًا: حيث يُعرّف متجه "أعلى" إضافي ( متجه عمودي ) لاختيار المستوى الذي يدور فيه متجه "الأمام" ثنائي الأبعاد للسلحفاة؛ كما يدور متجه "الأعلى" نفسه حول متجه "الأمام". وبالتالي، تمتلك السلحفاة زاويتي اتجاه مختلفتين، إحداهما ضمن المستوى والأخرى تحدد زاوية هذا المستوى. عادةً، لا يؤدي تغيير زاوية المستوى إلى تحريك السلحفاة، بما يتماشى مع النموذج التقليدي.

يُطبّق فيرهوف (2010) [ 6 ] منهج المتجهين؛ حيث يُستخدم أمر الدوران لتدوير متجه "الأعلى" حول متجه "الأمام". ثمّ يطوّر المقال نظرية جبرية لإثبات الخصائص الهندسية انطلاقًا من الخصائص التركيبية لبرامج السلحفاة الأساسية. ومن بين الأفكار التي توصل إليها أن أمر الغوص هو في الواقع اختصار لتسلسل الدوران-التدحرج-الدوران.

مكتبة Cheloniidae Turtle Graphics هي مكتبة ثلاثية الأبعاد للسلاحف مصممة بلغة جافا . تحتوي على أمر " الانعطاف " (مماثل لأمر "الدوران ") وأمر "الميل" (مماثل لأمر "الغوص ") في "السلحفاة الدورانية الكارتيزية". يُسمح باستخدام نماذج إحداثيات أخرى، بما في ذلك الهندسة غير الإقليدية، ولكنها غير مُضمنة. [ 7 ]

مثال على الكود

يستخدم كود بايثون التالي وحدة السلحفاة لإنشاء حلزون قوس قزح:

استورد السلحفاة باسم tt . shape ( "turtle" )x = 1 t . speed ( 10 ) colors = [ "أحمر" , "برتقالي" , "أصفر" , "أخضر" , "أزرق" , "بنفسجي" ]for i in range ( 100 ) : for i in colors : t.forward ( x * 0.3 ) t.left ( 60 ) t.color ( i ) t.right ( 30.5 ) x = x + 1

انظر أيضاً

صورة متحركة بصيغة GIF مع سلحفاة في شعار MSW ( Cycloid ) [ 8 ]

مراجع

  1. غولدمان، رون؛ شيفر، سكوت؛ جو، تاو. "هندسة السلحفاة في رسومات الحاسوب والتصميم بمساعدة الحاسوب" (ملف PDF) . CSE.WUSTL.edu .
  2. 1 2 "25.1. turtle — رسومات Turtle — وثائق بايثون 3.7.0" . docs.python.org . تم الاطلاع عليه بتاريخ 23-08-2018 .
  3. ريسنيك، ميتشل (يناير 2017) https://web.media.mit.edu/~mres/papers/IJCCI-seeds-seymour-sowed.pdf#page=2 تاريخ الاطلاع: 4 يونيو 2026
  4. ثورنبورغ، ديفيد د. (مارس 1983). "أصدقاء السلحفاة: حول الشعار والسلاحف" . مجلة كومبيوت!، ص 148. تاريخ الاسترجاع: 6 أكتوبر 2013 . 
  5. "3. مرحباً أيها السلاحف الصغيرة! — كيف تفكر كعالم حاسوب: التعلم باستخدام بايثون 3" . python.camden.rutgers.edu . تم الاطلاع عليه بتاريخ 23 أغسطس 2018 .
  6. فيرهوف، توم (2010). "هندسة السلحفاة ثلاثية الأبعاد: العمل الفني، والنظرية، وتكافؤ البرامج، والتناظر" . المجلة الدولية للفنون والتكنولوجيا . 3 (2/3): 288-319 . doi : 10.1504/IJART.2010.032569 . تاريخ الاسترجاع: 28 فبراير 2021 .
  7. سبنسر تيبينغ حول السلاحف (تم الاطلاع عليه بتاريخ 17-9-2016)
  8. ^ بيتروكولا، جورجيو (2005). "تارتابيلاجو" . ماكلا .

للمزيد من القراءة