فحص احتواء صندوق الإحاطة
الصندوق الخارجي من (0, 0) إلى (10, 10) يحتوي بالكامل الصندوق الداخلي من (2, 3) إلى (5, 7)، فالحواف الأربع متداخلة. أدخل حواف الصندوقين لترى أي جانب يمنع الاحتواء إن وُجد. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الحد الأدنى الخارجي لـ x
- 0
- الحد الأقصى الخارجي لـ x
- 10
- الحد الأدنى الخارجي لـ y
- 0
- الحد الأقصى الخارجي لـ y
- 10
- الحد الأدنى الداخلي لـ x
- 2
- الحد الأقصى الداخلي لـ x
- 5
- العرض الخارجي
- 10
- الارتفاع الخارجي
- 10
- العرض الداخلي
- 3
- الارتفاع الداخلي
- 4
احتواء صناديق الإحاطة المحاذاة للمحاور مُسند مكاني أساسي في رسم الخرائط ورسوم الحاسوب ومرحلة التصادم الواسعة وتسلسلات بلاط GIS وقصّ نافذة العرض. عند مستطيلين ضلعاهما موازيان للمحاور، السؤال هو ما إذا كان الصندوق الخارجي يحيط بالكامل بالداخلي — لا مجرد التقاطع أو مشاركة زاوية. يقبل هذا الفحص ثمانية حدود حافة منتهية (أدنى وأقصى X وY للحاوية الخارجية والمرشح الداخلي)، ويتحقق من أن كل صندوق له min أصغر من max أو مساوٍ له على المحورين، ثم يقيّم أربع متباينات مغلقة: يجب أن تكون الحافة اليسرى الخارجية عند اليسرى الداخلية أو إلى يسارها، واليمنى الخارجية عند اليمنى الداخلية أو إلى يمينها، وكذلك التداخل في الأسفل والأعلى. النتيجة علم منطقي contains مع تشخيص لكل حافة لمعرفة الحد الذي فشل عند انتفاء التداخل. الصناديق المتطابقة تُعدّ احتواءً بحواف مغلقة.
معنى احتواء AABB وكيف تُختبر الحواف الأربع
يُعرَّف صندوق الإحاطة المحاذي للمحاور، ويُختصر غالباً AABB، بإحداثي أدنى وأقصى على كل محور. الاحتواء الكامل لصندوق داخلي بواسطة خارجي يعني أن كل نقطة من المستطيل الداخلي تنتمي أيضاً إلى المستطيل الخارجي. لأن الشكلين حاصل ضرب فترات، يُختزل تضمين المجموعة إلى تداخل فترات على كل محور على حدة: يجب أن تقع فترة X الداخلية داخل فترة X الخارجية، وفترة Y الداخلية داخل Y الخارجية.
إذا فشل أي من الفحوص الأربعة، لا يحتوي الصندوق الخارجي الداخلي بالكامل — حتى مع تقاطع جزئي أو مشاركة حد من جانب واحد فقط. تُقبل الصناديق المنحلة ذات عرض أو ارتفاع صفري عندما يساوي min قيمة max؛ والصندوق النقطي محتوًى عندما تقع تلك النقطة على الحواف الخارجية أو داخلها. صندوقان متطابقان يحققان الاحتواء أيضاً لأن كل الحواف متساوية والمتباينات المغلقة تبقى صحيحة.
لا تنمذج هذه القدرة مستطيلات مدورة ولا مضلعات كروية جيوديسية ولا لفّ خط التاريخ؛ إنها مُسند AABB الديكارتي الكلاسيكي المستخدم كمرشح سريع للمرحلة الواسعة قبل اختبارات هندسية أغلى.
عقد الإدخال وشكل الاستجابة والصناديق غير الصالحة
يُرفض الصندوق المقلوب حيث min أكبر بصرامة من max بدل التبديل الصامت، لأن التبديل سيغيّر الهندسة المقصودة دون علم المستدعي. حقل الملخص contains يكون true فقط عندما تكون الأعلام الأربعة true. العلم equal يكون true عندما يتشارك الصندوقان حواف متطابقة.
تصف رسالة قصيرة الاحتواء الكامل أو الصناديق المتطابقة أو تسرد الحواف الفاشلة عند انتفاء التداخل. مثال: صندوق خارجي من (0,0) إلى (10,10) وداخلي من (2,3) إلى (5,7) ينتج contains true مع الأعلام الأربعة true. التقاطع الجزئي أو صندوق بارز من جانب ينتج contains false ويسمّي الجانب الفاشل.
إخفاقات التحقق لا تُفوتر.
أين تُجدي فائدة فحص احتواء صناديق الإحاطة
تستخدم خوادم الخرائط والبلاط احتواء AABB لتقرر ما إذا كان bbox المَعلم داخل نافذة العرض أو بلاطة الأب أو مستطيل السياج الجغرافي بالكامل قبل تحميل هندسة أدق. تنفّذ محركات الألعاب والفيزياء نفس اختبار الحواف الأربع كمرشح رخيص للمرحلة الواسعة قبل تصادم مستوى المثلث. تقارن خطوط أنابيب GIS صناديق التعليق بمدى المناطق عند قصّ التصدير أو التحقق من أن منطقة مرسومة تقع بالكامل ضمن ورقة خريطة مرخّصة.
تُدخل أدوات الرؤية الحاسوبية وتخطيط المستندات صناديق الكشف داخل مستطيلات الصفحة أو القصّ لتصفية الإيجابيات الكاذبة التي تخرج عن الإطار. تستفيد مواقع المحتوى التي تترتب على فحص احتواء صندوق الإحاطة من ودجت حيّ يطابق مساره المجاني في المتصفح مسار الأتمتة المدفوع بايتًا بايت على الوحدة النقية نفسها. التحقق الفاشل لا يستهلك الرصيد.
أبقِ الطلبات صغيرة وثبّت المنطقي وأعلام الحواف في الاختبارات لتحصل على قرارات تداخل قابلة لإعادة الإنتاج لعمال الخرائط وخوادم الألعاب وسكربتات التصحيح دون إقامة قاعدة بيانات مكانية كاملة لمجرد اختبار مستطيلات.
حالات الاستخدام
تداخل نافذة العرض والبلاط
تحقق مما إذا كان bbox المَعلم أو بلاطة الابن يقع بالكامل داخل نافذة خريطة العرض أو بلاطة الأب قبل تحميل الهندسة التفصيلية.
التصادم والقص في المرحلة الواسعة
صفِّ الأزواج المرشحة في الألعاب والفيزياء باختبار ما إذا كان AABB يحتوي آخر بالكامل قبل اختبارات المرحلة الضيقة المكلفة.
التحقق من صناديق التخطيط والكشف
تأكد من أن صناديق OCR أو UI أو كشف الكائنات تبقى بالكامل داخل صفحة أو قصّ أو مدى منطقة مرخّصة.
الأسئلة الشائعة
هل تُعدّ الصناديق المتطابقة احتواءً؟
نعم. الحواف المغلقة تسمح بمساواة min/max الخارجي لـ min/max الداخلي. العلم equal يكون true وcontains true عندما يتشارك الصندوقان الحدود نفسها.
ماذا لو كان min أكبر من max على صندوق؟
لا تُبدَّل الصناديق المقلوبة تلقائياً؛ صحّح الحواف بحيث يكون min أصغر من max أو مساوياً له على كل محور.
هل تُعالج الصناديق المدورة أو الجغرافية عند خط التاريخ؟
لا. هذا اختبار ديكارتي محاذٍ للمحاور فقط. أدِر الأشكال أولاً إلى شكل محاذٍ، أو استخدم قدرة جيوديسية للمضلعات الكروية التي تلفّ خط التاريخ.
هل التداخل يعني الاحتواء؟
لا. قد يتداخل صندوقان أو يتشاركان حافة ولا ينجحان في الفحص. يتطلب الاحتواء أن تقع كل نقطة من الصندوق الداخلي داخل الخارجي، لذا يجب أن تتداخل الحواف الأربع، ويكفي فشل حافة واحدة لتكون النتيجة سلبية.
كيف أعرف أي جانب يمنع الاحتواء؟
تُفحص كل حافة على حدة: اليسرى واليمنى والسفلى والعليا. تبيّن النتيجة أيها نجح، وتذكر الرسالة الحواف الفاشلة، فترى إن كان الصندوق الداخلي يبرز من جانب واحد أو من عدة جوانب.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/geo/bbox-contains-bbox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"outer_min_x":0,"outer_max_x":10,"outer_min_y":0,"outer_max_y":10,"inner_min_x":2,"inner_max_x":5,"inner_min_y":3,"inner_max_y":7}'const res = await fetch("https://api.kit.forhosting.com/geo/bbox-contains-bbox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"outer_min_x": 0,
"outer_max_x": 10,
"outer_min_y": 0,
"outer_max_y": 10,
"inner_min_x": 2,
"inner_max_x": 5,
"inner_min_y": 3,
"inner_max_y": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/bbox-contains-bbox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"outer_min_x": 0,
"outer_max_x": 10,
"outer_min_y": 0,
"outer_max_y": 10,
"inner_min_x": 2,
"inner_max_x": 5,
"inner_min_y": 3,
"inner_max_y": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/bbox-contains-bbox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"outer_min_x":0,"outer_max_x":10,"outer_min_y":0,"outer_max_y":10,"inner_min_x":2,"inner_max_x":5,"inner_min_y":3,"inner_max_y":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"outer_min_x":0,"outer_max_x":10,"outer_min_y":0,"outer_max_y":10,"inner_min_x":2,"inner_max_x":5,"inner_min_y":3,"inner_max_y":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/bbox-contains-bbox", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"outer_min_x": 0,
"outer_max_x": 10,
"outer_min_y": 0,
"outer_max_y": 10,
"inner_min_x": 2,
"inner_max_x": 5,
"inner_min_y": 3,
"inner_max_y": 7
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.bbox_contains_bbox",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
المنطق النقي نفسه يشغّل أداة المتصفح المجانية ومسار API المدفوع، فلا تختلف خطوط أنابيب الخرائط والمصححات الآلية في قرار التداخل.
معنى احتواء AABB وكيف تُختبر الحواف الأربع
في بُعدين ذلك أربعة أعداد: min_x وmax_x وmin_y وmax_y. مكتوبة كمتباينات بحواف مغلقة، يثبت الاحتواء إذا وفقط إذا كان outer_min_x أصغر من inner_min_x أو مساوياً له، وouter_max_x أكبر من inner_max_x أو مساوياً له، وouter_min_y أصغر من inner_min_y أو مساوياً له، وouter_max_y أكبر من inner_max_y أو مساوياً له.
عقد الإدخال وشكل الاستجابة والصناديق غير الصالحة
أرسل جسماً JSON عبر POST بثمانية أعداد منتهية إلزامية: outer_min_x وouter_max_x وouter_min_y وouter_max_y لصندوق الحاوية، إضافة إلى inner_min_x وinner_max_x وinner_min_y وinner_max_y للمرشح. قد يصل كل حقل كعدد JSON أو سلسلة رقمية؛ الحقول الناقصة والسلاسل الفارغة والقيم غير المنتهية تفشل بـ invalid_input مع تسمية الحقل. إضافة إلى ذلك يجب أن يكون كل صندوق سليم التكوين: outer_min_x أصغر من outer_max_x أو مساوٍ له، ونفس قاعدة min مقابل max تنطبق على حواف Y الخارجية ومحوري الصندوق الداخلي. عند النجاح تعيد الاستجابة قيم الحواف الثماني بعد التقريب، وتبلّغ outer_width وouter_height وinner_width وinner_height، وتعيد أعلاماً منطقية left_ok وright_ok وbottom_ok وtop_ok لكل اختبار حافة.
أين تُجدي فائدة فحص احتواء صناديق الإحاطة
لأن التنفيذ parse نقي من المستوى A، كل استدعاء ناجح يكلف السعر الأساسي المنشور $0.002 بلا رموز نموذج وبلا شبكة صادرة.
أسئلة تقنية
كيف أتحقق من أن صندوق إحاطة يحتوي آخر؟
أرسل ثماني حواف منتهية: outer_min_x وouter_max_x وouter_min_y وouter_max_y ونفس الأربع للصندوق الداخلي. تُرجع API القيمة contains true عندما يُداخل الخارجي الداخلي على الحواف الأربع.
كم يكلف فحص احتواء صناديق الإحاطة؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقاً بمقدار $0.002 لكل استدعاء ناجح؛ الإدخال غير الصالح لا يُفوتر.