> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/arabic/alblwkat-alwzyfyh/blocks-reference/detections-shapes/shape-analysis/translate-shape.md).

# Translate Shape

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

## 📥 المدخلات

`Shape` شكل ليتم نقله. الأنواع المقبولة:

* نقطة مفردة (x, y)
* مستطيل معرف بنقطتي زاويتين
* دائرة معرف بمركز center\_x, center\_y ونصف القطر
* Contour (قائمة مرتبة أو مصفوفة من نقاط (x,y))

`X` قيمة الإزاحة الأفقية (اختياري). عدد صحيح يمثل بكسلات لتحريك الشكل على المحور X. القيمة الافتراضية 0 إذا لم تُعطَ.

`Y` قيمة الإزاحة العمودية (اختياري). عدد صحيح يمثل بكسلات لتحريك الشكل على المحور Y. القيمة الافتراضية 0 إذا لم تُعطَ.

(جميع ما سبق هي مقابس إدخال.)

## 📤 المخرجات

`Shape` الشكل بعد النقل معاد بنفس صيغة الإدخال (نقطة، مستطيل، دائرة أو contour).

(هذا مقبس إخراج.)

## 🕹️ عناصر التحكم

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

## ⚙️ آلية التشغيل

* عند التنفيذ، يقرأ البلوك الشكل المقدم وقيم الإزاحة الاختيارية `X` و`Y`.
* تُطبق الإزاحات كقيم بكسل صحيحة. القيم الموجبة تحرك الشكل إلى اليمين/أسفل، والقيم السالبة تحركه إلى اليسار/أعلى.
* يعيد البلوك نفس نوع الشكل بعد إزاحته بالمقدار المحدد. بالنسبة للـ contour، تُنقل كل رأس بنفس الإزاحة (X, Y).
* إذا تم تقديم نوع شكل غير مدعوم أو بيانات غير صالحة، سيُشير البلوك إلى خطأ في التكوين — تأكد أن مدخل `Shape` مطابق لأحد الصيغ المقبولة.

## ✨ الميزات

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

## 📝 إرشادات الاستخدام

1. أدخل الشكل إلى مقبس `Shape` (مثال: contour المرجع من كاشف).
2. أدخل قيمة الإزاحة الأفقية إلى مقبس `X` (اختياري).
3. أدخل قيمة الإزاحة العمودية إلى مقبس `Y` (اختياري).
4. اقرأ الشكل المنقول من مخرج `Shape` واستخدمه للرسم، القياس أو المعالجة اللاحقة.

## 💡 نصائح وحيل

* الدمج مع كتل الكشف و ROI:
  * استخدم `Find Contour`, `Find Object` أو `Approximate Contour` للحصول على أشكال، ثم أرسلها إلى هذا البلوك لمحاذاة أو تعويض النتائج.
  * استخدم `Image ROI`, `Image ROI Select` أو `Get ROI` لاقتصاص أو التركيز على منطقة قبل نقل الأشكال حتى تبقى الإحداثيات متسقة داخل المنطقة العاملة.
* العمل مع أشكال متعددة أو قوائم:
  * استخدم `Batch Processing`, `Debatch` أو `Batch Concatenation` لنقل قائمة من الأشكال بشكل تكراري.
  * لعرض النتائج المنقولة للتحقق بصريًا، أرسل الإخراج إلى `Draw Point`, `Draw Rectangle` أو `Draw Result On Image`.
* لعمليات القياس:
  * بعد نقل الأشكال، استخدم `Measure Position Distance` لحساب المسافات بين المواضع المنقولة والمرجعية.
  * استخدم `Minimum Rectangle`, `Hull Convex` أو `Contour to Image` لتحويل ومقارنة الملخصات الهندسية بعد النقل.
* التصور وتصحيح الأخطاء:
  * لعرض الـ contours أو المستطيلات المنقولة على الصور، مرّر الشكل المنقول إلى `Draw Rectangle` أو `Draw Result On Image` وشاهد المعاينة عبر `Show Image`.

## 🛠️ استكشاف الأخطاء وإصلاحها

* لا يظهر أي تغيير بعد النقل:
  * تحقق من تقديم قيم غير صفرية إلى `X` أو `Y`.
  * تأكد أن بلوك العرض/الرسم (مثال: `Show Image` أو `Draw Rectangle`) يستقبل الشكل المنقول ونظام الإحداثيات المستخدم هو نفسه.
* حدوث أخطاء بتنسيق الشكل:
  * تأكد من أن شكل الإدخال يتوافق مع أحد الصيغ المدعومة (نقطة، مستطيل، دائرة، أو contour).
  * إذا كنت تعمل مع قوائم، فتأكد من إرسالها عبر تدفق متوافق مع الدُفعات أو القوائم (استخدم `Batch Processing` / `Debatch` عند الحاجة).
* خروج الأشكال عن حدود الصورة:
  * قد تحرك الإزاحات الأشكال خارج مساحة الصورة. إذا كان ذلك مشكلة، فقم بتقييد الإحداثيات عبر فحوصات لاحقة أو اقترح اقتصاص ROI قبل النقل.
