18.21. استخدام أدوات مصمّم النماذج الحصرية لإنشاء نموذج¶
ملاحظة
يوضّح هذا الدرس كيفية استخدام بعض الخوارزميات المتاحة فقط في مصمّم النماذج، لتوفير وظائف إضافية للنماذج.
الهدف من هذا الدرس هو استخدام مصمّم النماذج لإنشاء خوارزمية استيفاء تأخذ التحديد الحالي في الحسبان، ليس فقط لاستخدام المعالم المحدّدة وحدها، بل لاستخدام امتداد ذلك التحديد في إنشاء الطبقة الشبكية المستوفاة.
تتضمّن عملية الاستيفاء خطوتين، كما شُرح في دروس سابقة: تحويل طبقة النقاط إلى طبقة شبكية، ثم ملء قيم انعدام البيانات (no-data) التي تظهر في الطبقة الناتجة. إذا كان في طبقة النقاط تحديد، فستُستخدم النقاط المحدّدة فقط، لكن إذا ضُبط امتداد المخرج ليُعدَّل تلقائيًا، فسيُستخدم الامتداد الكامل للطبقة. أي أن امتداد الطبقة يُعدّ دائمًا الامتداد الكامل لجميع المعالم، لا الامتداد المحسوب من المعالم المحدّدة فقط. سنحاول إصلاح ذلك باستخدام بعض الأدوات الإضافية في نموذجنا.
افتح مصمّم النماذج وابدأ النموذج بإضافة المُدخلات المطلوبة. نحتاج في هذه الحالة إلى طبقة متجهية (مقتصرة على النقاط) وسمة منها تحتوي على القيم التي سنستخدمها في التحويل إلى طبقة شبكية.
الخطوة التالية هي حساب امتداد المعالم المحدّدة. وهنا يمكننا استخدام الأداة الخاصة بمصمّم النماذج المسمّاة Vector layer bounds. أولًا، علينا إنشاء طبقة لها امتداد تلك المعالم المحدّدة، ثم يمكننا استخدام هذه الأداة على تلك الطبقة.
من الطرق السهلة لإنشاء طبقة لها امتداد المعالم المحدّدة حساب الغلاف المحدّب (convex hull) لطبقة النقاط المُدخلة. سيستخدم النقاط المحدّدة فقط، لذا سيكون للغلاف المحدّب المربع المحيط نفسه للتحديد. بعد ذلك يمكننا إضافة خوارزمية Vector layer bounds واستخدام طبقة الغلاف المحدّب مُدخلًا لها. يجب أن يبدو ذلك على لوحة مصمّم النماذج هكذا:
نتيجة Vector layer bounds هي مجموعة من أربع قيم عددية وكائن امتداد. سنستخدم المخرجات العددية والامتداد كليهما في هذا التمرين.
يمكننا الآن إضافة الخوارزمية التي تحوّل الطبقة المتجهية إلى طبقة شبكية، مستخدمين الامتداد الناتج عن خوارزمية Vector layer bounds مُدخلًا.
املأ معاملات الخوارزمية كما هو موضّح فيما يلي:
يجب أن تبدو اللوحة الآن هكذا.
أخيرًا، املأ قيم انعدام البيانات في الطبقة الشبكية باستخدام خوارزمية Close gaps.
أصبحت الخوارزمية الآن جاهزة للحفظ والإضافة إلى صندوق الأدوات. يمكنك تشغيلها وستُنتج طبقة شبكية من استيفاء النقاط المحدّدة في الطبقة المُدخلة، وسيكون للطبقة الامتداد نفسه للتحديد.
إليك تحسينًا للخوارزمية. لقد استخدمنا قيمة مثبّتة لحجم الخلية عند التحويل إلى طبقة شبكية. هذه القيمة مناسبة لطبقة الاختبار المُدخلة، لكنها قد لا تناسب حالات أخرى. يمكننا إضافة معامل جديد ليُدخل المستخدم القيمة المطلوبة، لكن النهج الأفضل بكثير هو حساب تلك القيمة تلقائيًا.
يمكننا استخدام الآلة الحاسبة الخاصة بمصمّم النماذج، وحساب تلك القيمة من إحداثيات الامتداد. على سبيل المثال، لإنشاء طبقة بعرض ثابت قدره 100 بكسل، يمكننا استخدام الصيغة التالية في الآلة الحاسبة.
علينا الآن تعديل خوارزمية التحويل إلى طبقة شبكية، بحيث تستخدم مخرج الآلة الحاسبة بدلًا من القيمة المثبّتة.
يجب أن تبدو الخوارزمية النهائية على هذا النحو: