CCTVPLANNER.IO / بحث
هندسة تغطية كاميرات المراقبة
كيف تُصوِّر الكاميرا المثبَّتة المائلة الأرض — هندسة مخروط الرؤية، إسقاطات العدسة، ومعيار مسافات DORI، مشتقّةً من المبادئ الأولى ومُوضَّحة بالشيفرة ذاتها التي تُشغِّل المصمّم الحي.
١. من المخروط إلى البصمة الأرضية
تُعرِّف كاميرا الثقب (pinhole) مخروط الرؤية: هرمًا رباعي الأوجه يمتدّ من المركز البصري للكاميرا حتى حدود مستوى صورتها. كل بكسل هو شعاع واحد ينطلق من المركز البصري عبر النقطة المقابِلة على مستوى الصورة. لإيجاد المنطقة الأرضية التي تغطيها الكاميرا، نقطع كل شعاع مع المستوى الأرضي ونحتفظ بالنقاط الواقعة ضمن مدى الكاميرا.
بالنسبة لكاميرا مثبَّتة على ارتفاع h، مائلة بزاوية α تحت الأفق، بمجال رؤية عمودي vfov، فإن أشعة المخروط الأربعة الزاويّة ترسم الغلاف الخارجي للتغطية على الأرض. في تكوينات التركيب النموذجية (حيث α + vfov/2 < 90°)، يكون الشكل شبه منحرف مبتور بزوايا منحنية — وليس مثلثًا ولا قطاعًا منطلقًا من نقطة تثبيت الكاميرا. عندما تقترب α + vfov/2 من ٩٠° (كاميرات قبّة ذات إمالة شديدة مثبَّتة على السقف)، تبدأ الحافة السفلية للصورة بإصابة الأرض عند قاعدة الكاميرا، ويتحلّل شبه المنحرف نحو قطاع.
البصمة الأرضية في المنظر العلوي لكاميرا بـ h = 4 م، إمالة = ٣٠°، hfov = ١٠٦°. تلتقي الحافة السفلية للصورة بالأرض على مسافة قصيرة أمام الكاميرا؛ تتسع الحواف الجانبية كالمروحة؛ تُقطع الحافة البعيدة عند المدى الفعّال للكاميرا.
٢. تقاطع الحافة السفلية / العلوية
يُصيب شعاع الحافة السفلية (sV = −1 في إحداثيات مستوى الصورة) الأرضَ عند:
d_near = h / tan(α + vfov/2)
ويُصيب شعاع الحافة العلوية (sV = +1) عند:
d_far = h / tan(α − vfov/2) if α > vfov/2 (entirely below horizon)
unbounded if α ≤ vfov/2 (upper edge above horizon
— clamped at renderRange)منظر جانبي، h = 4 م، إمالة = ١٥°، vfov = ٥٠°. الخطّان الأزرقان هما شعاعا الحافتين السفلية والعلوية للمخروط؛ الشريط الأزرق السميك على الأرض يُحدِّد المنطقة التي تُصوِّر فيها الكاميرا الأرضية (من d_near إلى renderRange). الإسفين الأحمر تحت الصاري هو المنطقة الهندسية التي لا تستطيع العدسة استبيانها.
للحوافّ الجانبية (sH = ±1)، ينطبق البناء نفسه على المستوى الأفقي: يجتاز كل شعاع جانبي مجال HFOV للكاميرا عند كل ارتفاع من مستوى الصورة. بالنسبة للعدسات المستقيمة (البصريات السائدة في كاميرات المراقبة) تُسقَط هذه على شكل خطوط مستقيمة متباعدة على الأرض، فتُكوِّن الجوانب المائلة لشبه المنحرف. أما لعدسات عين السمكة فيكون التحويل ذاته منحنيًا، وتصبح البصمة قرصًا منحنيًا.
٣. المنطقة العمياء الهندسية
لأي كاميرا مثبَّتة فوق سطح الأرض ومائلة أقل من 90° − vfov/2، توجد منطقة تحت نقطة التثبيت مباشرةً لا يمكن لأي شعاع من المخروط بلوغها. تشير الحافة السفلية للصورة إلى زاوية α + vfov/2 أسفل الأفق؛ كل ما هو أقرب من d_near يقع كليًا خارج صورة الكاميرا.
مع تثبيت الإمالة وFOV، تتدرّج المنطقة العمياء خطيًا مع ارتفاع التركيب — تختزل المعادلة إلى d_near = h × cot(α + vfov/2)، حيث يحدِّد طرف ظل التمام بواسطة العدسة. كاميرا مائلة ١٥° بمجال رؤية عمودي ٥٠° لها منطقة عمياء قدرها 4.8 م عند ارتفاع تركيب 4 م و23.8 م عند 20 م — نسبة ٥× توازي نسبة الارتفاعين. نسبة المنطقة العمياء إلى منطقة التغطية هي القيد الحاكم لتموضع الكاميرات على الأبراج العالية.
العدسة ذاتها، الإمالة ذاتها ١٥°، فقط بتركيب أعلى (h = 20 م): تكبر المنطقة العمياء بالتناسب مع الارتفاع، باستقلال عن البعد البؤري أو حجم المستشعر.
٤. مسافات DORI (EN 62676-4)
يحدِّد معيار DORI (Detect / Observe / Recognize / Identify — الكشف / المراقبة / التمييز / تحديد الهوية) كثافات بكسلات الهدف عند مسافات معيّنة من الكاميرا. وفق EN 62676-4 تُعدّ هذه المسافات مسافات أفقية على الأرض بين الكاميرا والهدف — لا مسافات مائلة على المحور البصري. وتلتزم صحائف بيانات كبار المصنّعين (Axis، Hikvision، Dahua، Bosch) بهذا الاصطلاح.
على خريطة ثنائية الأبعاد، تكون المستويات الأربعة لـ DORI ببساطة أقواسًا متمركزة بأنصاف أقطار تساوي مسافاتها الأفقية، مقصوصة بمضلّع بصمة الكاميرا. حيث لا تصل البصمة إلى نصف القطر المعني، يُخفى الجزء المقابِل من القوس — للكاميرات ذات HFOV ضيّق يكون المخروط أرفع من احتواء الدائرة كاملة، فتُقصّ الأطراف الجانبية لكل مستوى، وللكاميرات قصيرة المدى تقع المستويات الأكبر كليًا خارج المخروط.
حلقات DORI كأقواس على الأرض داخل بصمة الكاميرا. h = 4 م، إمالة = ٢٠°، hfov = ٩٠°، مدى = 70 م. القيم المعروضة للمستويات (8 / 16 / 32 / 64 م) توضيحية لكاميرا 1080p نموذجية بـ ~٩٠° HFOV؛ المسافات الأفقية الفعلية تعتمد على المستشعر والبعد البؤري. يُحدِّد EN 62676-4 كثافات البكسلات لكل مستوى (تحديد الهوية: 250 px/m، التمييز: 125 px/m، المراقبة: 62 px/m، الكشف: 25 px/m)، وتُشتقّ منها المدى الأفقي لكل كاميرا.
تفسير المسافة المائلة (عند الانطباق). إذا حدّدت صحيفة بيانات معيّنة المدى كمسافة مائلة من العدسة — وهو نادر في بصريات المراقبة العامة، ويُرى أحيانًا في مواصفات العدسات الحرارية أو المُقرِّبة — فإن المدى الأفقي المكافئ على الأرض هو √(d_slant² − h²). كاميرا مثبَّتة على 6 م بمدى تحديد هوية مائل قدره 8 م تغطي نصف قطر أفقي قدره 5.3 م (√(64 − 36)). توفِّر وحدة الهندسة كلتا الصيغتين؛ ويستخدم الرسم في الصفحة التفسير الأفقي القياسي.
٥. أنواع إسقاط العدسة
تختلف تصاميم العدسات في كيفية تحويل الزاوية من المحور البصري إلى نصف قطر مستوى الصورة. الإسقاطات الثلاثة المستخدمة في المراقبة:
| الإسقاط | r(θ) | المدى النموذجي |
|---|---|---|
| مستقيم | f · tan θ | HFOV ≲ ١٢٠° (معظم عدسات CCTV الثابتة وذات البُعد المتغيّر) |
| متساوي البُعد | f · θ | HFOV ≳ ١٤٠° (بانورامي / عين سمكة) |
| متساوي الزاوية المجسمة | 2 f · sin(θ/2) | عدسات عين السمكة الحافظة للزاوية المجسمة |
θ = الزاوية من المحور البصري (راديان)؛ f = البعد البؤري. r(θ) هي المسافة الشعاعية على مستوى الصورة من النقطة الرئيسية.
في العدسات المستقيمة، يتجاوز العامل الجانبي خارج المحور tan(θ) القيمة 1 عندما تتعدّى θ زاوية ٤٥° من المحور البصري (أي عندما يتجاوز HFOV ٩٠°)، وينمو دون حد كلما اقتربت θ من ٩٠° (HFOV يقترب من ١٨٠°). في البصريات الواقعية يصبح تمدُّد الزوايا حادًا قبل أن تتباعد الرياضيات بكثير — يتحوّل معظم مصمّمي العدسات إلى زجاج شبيه بعين السمكة عند نحو ١٢٠–١٤٠° HFOV، مع استخدام عدسات عين السمكة الكاملة فوق نحو ١٧٠°.
يختار CCTVplanner.io حاليًا الإسقاط المستقيم حتى ١٧٠° HFOV، وفوق ذلك ينمو تمدُّد الزوايا بما يكفي لنتحوّل إلى متساوي البُعد لأجل الاستقرار العددي. لذلك تُنمذَج الكاميرات بين نحو ١٤٠° و١٧٠° HFOV بالرياضيات المستقيمة حتى لو كانت عدسة الجهاز الفعلية أقرب إلى عين السمكة — نقبل هذا مقابل هندسة زاوية أبسط. الإسقاط متساوي الزاوية المجسمة مدعوم في طبقة الهندسة (لبيانات المصنّعين الذين يحدِّدونه صراحةً)، رغم عدم وجود تبديل ظاهر للمستخدم له بعد.
تحذير من صحيفة البيانات: HFOV مقابل DFOV
يذكر كثير من المصنّعين — لا سيما العلامات التجارية الآسيوية الكبرى (Dahua، Hikvision، Uniview، Tiandy) — رقمًا واحدًا لمجال الرؤية في صحيفة البيانات وهو في الحقيقة مجال الرؤية القطري (DFOV) لا الأفقي. إدخال قيمة DFOV في أداة تتوقع HFOV يُنتج بصمة أعرض بنسبة ١٠–١٥٪، مع تركّز الخطأ على الحواف الجانبية حيث تكون كثافة البكسلات أكثر أهمية.
لمستشعر بنسبة عرض إلى ارتفاع a (مثلًا 16:9 → a = 16/9)، التحويل هو:
tan(HFOV/2) = tan(DFOV/2) × a / √(a² + 1) tan(VFOV/2) = tan(DFOV/2) × 1 / √(a² + 1)
التحويل غير خطي في الزاوية: الاختصارات الخطية المغرية من شكل HFOV ≈ k × DFOV تعمل للعدسات الضيّقة، لكنها تخفق إخفاقًا شديدًا حين يتسع مجال الرؤية. لمستشعر 16:9 التحويلات الدقيقة كالتالي:
| DFOV (16:9) | HFOV الدقيق | VFOV الدقيق | خطأ الاختصار الخطي |
|---|---|---|---|
| 60° | 53.4° | 31.6° | −1.1° |
| 80° | 72.4° | 44.7° | −2.6° |
| 100° | 92.2° | 60.6° | −5.0° |
| 120° | 113.0° | 80.7° | −8.4° |
| 140° | 134.7° | 106.8° | −12.7° |
"خطأ الاختصار الخطي" = HFOV من الصيغة الساذجة HFOV = (a / √(a²+1)) × DFOV ناقصًا القيمة الدقيقة. يقلِّل الاختصار من تقدير HFOV بمقدار ٥–١٣° في النطاق الواسع الزاوية الذي يهيمن على بصريات المراقبة الحديثة — أكبر بكثير من تسامح صحيفة البيانات المفترض ±١° في §٩. استخدم دائمًا الصيغة المبنية على tan أو القيم الدقيقة أعلاه.
تخزِّن قاعدة بيانات الكاميرات في CCTVplanner.io قيمة HFOV (المقياس القياسي في المراقبة) وتقوم بالتحويل عند الاستيراد للكاميرات التي لا تذكر صحائف بياناتها سوى DFOV. عند إدخال كاميرا مخصّصة يدويًا، تحقّق من الوحدات قبل وضع الرقم في حقل HFOV — الخطأ هنا هو أحد أكثر السببين شيوعًا لعدم تطابق بصمات المسح الميداني مع الواقع المُركَّب (الآخر هو نسبة عرض المستشعر إلى ارتفاعه).
٦. العوائق، الظلال، والبصمة المرئية
تَحجب الجدران والأسوار والمنشآت العالية الأشعة الصادرة عن الكاميرا. لحساب البصمة المرئية، نُنمذِج كل عائق معتم كمضلّع (محيط مغلق) أو متعدد خطوط (سور مفتوح) ونُسقِط رباعيًّا للظل لكل قطعة: تُمدَّد كل قطعة بعيدًا عن الكاميرا إلى أضعاف عدّة من مدى الرسم. اتحاد هذه الظلال القطعية هو صورة العائق الظلّية مضافًا إليها كل ما خلفه كما تراه الكاميرا.
البصمة المرئية إذًا هي البصمة − ⋃ الظلال، وتُحسَب بخوارزمية فرق المضلّعات Martínez–Rueda. النتيجة مضلّع (أو قائمة من المضلّعات المتنافرة عندما يقسم عائق المخروط) تتطابق حوافه نظافةً مع كلّ من القوس البعيد للمخروط وكل جدار حاجب.
في التحليل المُدرك للأبعاد الثلاثة، فإن العائق الذي ارتفاعه أقلّ من ارتفاع تركيب الكاميرا لا يمنع الشعاع كليًا — بل يلقي ظلًا أرضيًا منتهيًا يمتدّ خلف العائق. لجدار على مسافة أفقية d من الكاميرا، بارتفاع تركيب h_cam وارتفاع قمّة العائق h_obs، يمتدّ الظل من الجدار إلى مسافة أفقية:
d_shadow_end = d × h_cam / (h_cam − h_obs) for h_cam > h_obs For h_obs ≥ h_cam the obstacle blocks the line of sight entirely — equivalent to an infinite shadow. The designer treats this case as a fully opaque blocker (no see-over) and applies the same per-segment shadow projection used in the 2D obstacle-clipping path.
تبديل "استخدام الارتفاع العمودي (3D)" على مبنى أو سور في المصمّم يُنقِّله إلى نموذج إسقاط الظل هذا. عندما تكون الكاميرا أقصر من العائق (أو متساوية الارتفاع معه)، لا يكون للتبديل أثر.
٧. الإسقاط متعدد الطوابق
يُعمّم تقاطع المخروط مع الأرض ببساطة على أيّ مستوى أفقي. استبدل معادلة الأرض z = 0 بـ z = z_target، وحلَّ نفس معادلة الشعاع-المستوى لكل شعاع زاويّ، فتكون النتيجة بصمة الكاميرا على ذلك الطابق المستهدَف. كاميرا مثبَّتة في الطابق الثاني من بهو ردهة تغطّي الطابق الأرضي بالبناء ذاته الذي تغطّي به كاميرا أرضية طابقها، فقط بقيمة z_target مختلفة وإزاحة عمودية معدَّلة بين الكاميرا والمستوى الهدف.
الطبقة الرياضية للإسقاط متعدد الطوابق متوفّرة اليوم في وحدة الهندسة؛ أما واجهة اختيار الطابق ومعاينة مشهد Three.js فهي في طابور إصدار مستقبلي.
٨. الافتراضات والقيود
تعتمد كل الصيغ أعلاه على مجموعة من الافتراضات المبسِّطة. تنطبق هذه على معظم سيناريوهات المراقبة ذات التركيب الثابت، لكنها تنهار في حالات محدّدة؛ نوثّقها كي يستطيع الممارسون تحديد متى يثقون بالنموذج.
افتراضات النموذج
- أرض مستوية (الأرض هي المستوى
z = 0) — لا انحدار للتضاريس، ولا انحناء للأرض. - كاميرا ساكنة لحظة الالتقاط — لا حركة PTZ خلال الإطار، ولا اهتزاز.
- نموذج كاميرا الثقب — لا تشويه عدسة. تُدخِل العدسات الحقيقية تشويه Brown–Conrady الشعاعي والمماسي (المعاملات
k₁, k₂, p₁, p₂) وهو ما لا نُنمذِجه. - معايرة مثالية — خطوة بكسل المستشعر، البعد البؤري، والمركز البصري تطابق مواصفات الشركة المصنّعة بدقة.
- لا أخطاء غالق متدحرج؛ تُلتقط الصورة كاملة في لحظة واحدة.
- لا دوران للكاميرا حول محورها البصري — يدور المحور البصري بـ pan وtilt فقط؛ ويبقى المستشعر أفقيًا.
- مسار بصري واحد — لا انكسار من قبّة زجاجية، ولا أسطح عاكسة في المشهد.
- الانكسار الجوي مهمل في مدى المراقبة النموذجي (خطأ دون 1 سم على مسافة 50 م).
حين ينهار النموذج
- تضاريس منحدرة. تنزاح البصمة الأرضية بعدم تناظر: يمتدّ الجانب الهابط أبعد ممّا يتوقّع النموذج، ويُضغَط الجانب الصاعد. الخطأ تقريبًا
±h · tan(slope)لكل متر مسافة أفقية. - تشويه العدسة الواسعة الزاوية. فوق نحو ١١٠° HFOV، يبتعد الإسقاط المستقيم عن التحويل الفعلي للعدسة بنسبة ١–٥٪ في الزوايا. تتوفّر إسقاطات متساوي البُعد / متساوي الزاوية المجسمة في طبقة الهندسة لهذه الحالات (انظر §٥).
- كاميرات بقباب زجاجية. تُدخِل القبّة إزاحة انكسار صغيرة عند مدخل العدسة (مليمترات عند ارتفاعات التركيب المعتادة). لأعمال DORI عالية الدقة على التركيبات ذات الزجاج المرآوي يصبح هذا غير مهمل؛ أما للتخطيط العام فهو دون مصادر الخطأ الأخرى.
- بصريات الانعكاس المتعدّد. الانعكاسات من جدران زجاجية، أسقف مرآوية أو أرضيات مصقولة لا تُتبع. يُعيد النموذج بصمة خطّ النظر فقط.
- PTZ في حالة حركة. يعطي النموذج البصمة اللحظية عند تركيبة pan/tilt واحدة. تغطية PTZ متحرّكة عبر الزمن هي البصمة المُكتنَسة، لا اللحظية.
- تسامح التركيب. تنحرف زوايا التركيب الفعلية عن التصميم بـ ١–٣° (خطأ الفنّي). يحدِّد القسم التالي كيف ينتقل ذلك إلى خطأ على الأرض.
٩. حساسية الخطأ
تنتقل أخطاء معاملات الإدخال (ارتفاع التركيب، زاوية الإمالة، FOV) إلى أخطاء موضع على الأرض في البصمة. لتقاطع الحافة السفلية مع الأرض d_near = h / tan(α + vfov/2)، تُعطي المشتقات الجزئية:
∂d_near/∂h = 1 / tan(α + vfov/2) = d_near / h ∂d_near/∂α = −h / sin²(α + vfov/2) (radians) ∂d_near/∂vfov = −h / (2 · sin²(α + vfov/2)) (radians)
المشتقات الجزئية الزاويّة بـ الراديان؛ اضرب في π/180 (≈ 0.01745) للتحويل لكل درجة. يُطبِّق الجدول أدناه هذا التحويل.
للتكوين النموذجي (h = 10 م، إمالة = ١٥°، vfov = ٥٠° → d_near ≈ 11.9 م)، تُنتج الأخطاء الصغيرة في كل معامل الانحرافات التالية في d_near:
| المعامل | خطأ الإدخال | Δ d_near | ملاحظة |
|---|---|---|---|
| إمالة α | ±1° | ±0.42 m | دقّة مقياس الميل النموذجية |
| إمالة α | ±3° | ±1.27 m | تركيب بالعين على القاعدة |
| ارتفاع h | ±0.5 m | ±0.59 m | قياس بشريط، صاري يصعب الوصول إليه |
| vfov | ±1° | ±0.21 m | تقريب صحيفة البيانات |
| الكلّ مجتمعًا | RMS | ~1.4 m | عند ٣° إمالة + ٠٫٥ م ارتفاع + ١° fov |
الطرف المهيمن هو عدم يقين زاوية التركيب: في التكوين أعلاه، يكلّف كل درجة خطأ في الإمالة نحو 42 سم في دقّة موضع الأرض عند d_near. يحافظ مقياس ميل بليزر بدقّة 0.1° على خطأ d_near الناتج عن الإمالة دون 5 سم؛ بينما تركيب القاعدة بالعين يعطي دقّة في حدود ±1 م. للتحقّق من مستويات DORI (حيث قد يكون الفرق بين حلقتي التمييز وتحديد الهوية على الأرض 2–3 م)، يجب قياس الإمالة لا تقديرها.
ينطبق التحليل ذاته للمشتقات الجزئية على عرض البصمة الجانبي عبر HFOV — يُنتج خطأ ١° في HFOV نحو 2 · d · tan(½°) ≈ ١٫٧٪ خطأ انتشار جانبي على المسافة d. على مدى 30 م يساوي ذلك نحو 52 سم من عدم اليقين الجانبي، ولهذا نتعامل مع أرقام HFOV من المصنّعين بـ ±١° لا كقيم دقيقة.
١٠. القابلية للاستنساخ
جميع صيغ هذه المقالة مُنفَّذة حرفيًا في وحدة الهندسة المرفقة بمصمّم CCTVplanner.io. تُغطّى الوحدة بمجموعة شاملة من اختبارات الوحدة تشمل الإسقاطات المستقيمة / متساوية البُعد / متساوية الزاوية المجسمة، والحالات الحدّية للمنطقة العمياء، وإسقاط DORI الأرضي، وقصّ المضلّعات البولياني للعوائق، والامتداد متعدد الطوابق. كل رسم في هذه الصفحة يُصاغ باستدعاء الدوال ذاتها التي يستخدمها المصمّم الحي.
نقاط الدخول الرئيسية
buildFrustum(args)— قاعدة الكاميرا (forward / right / upCam) + بيانات وصفية للمخروطcomputeGroundFootprint(frustum, projection)— مضلّع مأخوذ بالعينة (8 / 32 نقطة لكل ضلع)slantToGroundRadius(frustum, slantM)— √(slant² − h²) مع التحقّق من إمكانية الوصولcomputeSegmentShadow / computePolygonShadow— إسقاط ظل الأرض لكل قطعة / لكل مضلّعsubtractObstacleShadows(footprint, shadows)— فرق المضلّعات Martínez–RuedacomputeFloorFootprint(frustum, z, projection)— متغيِّر متعدد الطوابق
الثوابت الافتراضية
defaultLensProjection: مستقيم عندما يكون HFOV < 170°، وإلا متساوي البُعدSAMPLES_PER_EDGE: 8 للمستقيم، 32 لإسقاطات عين السمكة- مسافة قصّ الظل:
renderRange × 4(تغطّي قصّ الحافة البعيدة لأي مسافة عائق معقولة) - تثبيت أفقي للحافة البعيدة: الأشعة التي يتعدّى تقاطعها مع الأرض
renderRangeفي المسافة الأفقية تُسقَط مرّة أخرى إلىrenderRangeعلى طول اتجاهها الأفقي (يمنع نتوءات الخطوط الشاردة قرب الأفق على القوس البعيد للمضلّع).
استنساخ الرياضيات من الصفر: ابنِ CameraFrustum بالشكل المنشور { x, y, h, panDeg, tiltDeg, hfovDeg, vfovDeg, renderRangeM, pixelsPerMeter }؛ خُذ عيّنات من زوايا مستوى الصورة عند sH, sV ∈ [−1, +1] بـ 8 عيّنات لكل ضلع (32 لعين السمكة)؛ تقاطع كل شعاع مع المستوى z = 0؛ طبِّق فرق المضلّعات لطرح الظلال. باستثناء آثار ترتيب IEEE 754 في خطوة المضلّعات البوليانية، يتطابق الناتج مع المضلّع الذي يرسمه المصمّم الحي بدقّة الفاصلة العائمة (دون المليمتر على المدخلات بالحجم الواقعي).
المراجع
- IEC 62676-4:2014 (مع التعديلات) — أنظمة المراقبة بالفيديو لتطبيقات الأمن، الجزء الرابع: إرشادات التطبيق (DORI، مسافات الأهداف). نصّ مماثل نُشر بوصفه EN 62676-4 في الإصدار الأوروبي.
- Hartley & Zisserman, Multiple View Geometry in Computer Vision, الطبعة الثانية، Cambridge University Press, 2004 (نماذج إسقاط الكاميرا، هندسة المخروط).
- Kannala & Brandt, "A generic camera model and calibration method for conventional, wide-angle, and fish-eye lenses," IEEE TPAMI, 2006 (مقارنة الإسقاطات المستقيمة / متساوية البُعد / متساوية الزاوية المجسمة).
- Martínez, Rueda & Feito, "A new algorithm for computing Boolean operations on polygons," Computers & Geosciences, 2009 — خوارزمية Martínez–Rueda الأصلية. والإكمال عام 2013 "A simple algorithm for Boolean operations on polygons" (Advances in Engineering Software) هو الصيغة المُنفَّذة في مكتبة polygon-clipping المستخدَمة هنا.