الدائرة المحيطة
جد الدائرة الوحيدة التي تمر بثلاث نقاط: للنقاط (0، 0) و(4، 0) و(0، 3) تتمركز الدائرة المحيطة عند (2، 1.5) بنصف قطر 2.5، وهي المسافة نفسها إلى كل نقطة. مفيدة للشبكات والأقواس. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- X1
- 0
- Y1
- 0
- X2
- 4
- Y2
- 0
- X3
- 0
- Y3
- 3
- نصف القطر
- 2.5
- القطر
- 5
إن ثلاث نقاط ليست على استقامة واحدة تحدد دائرة واحدة بالضبط، وتجدها هذه الواجهة بصيغة مغلقة، دون تكرار ولا تقريب ولا تخمين. وعندما تكون النقاط الثلاث على استقامة واحدة، فلا توجد دائرة منتهية، فتُعلمك الواجهة بذلك بخطأ واضح بدلًا من رقم بلا معنى.
ما الدائرة المحيطة ومتى تحتاج إليها
لأي ثلاث نقاط لا تقع على خط مستقيم واحد، توجد دائرة واحدة بالضبط تمر بالنقاط الثلاث جميعها. تُسمى الدائرة المحيطة، ويقع مركزها، أي المركز المحيطي، على المسافة نفسها من كل نقطة من النقاط الثلاث. وهذه الخاصية التساويّة في البعد هي ما يجعل هذا الإنشاء نافعًا في ما يتجاوز واجبات الهندسة بكثير.
فإذا مثلّثتَ تضاريس أرضٍ لبناء شبكة ثلاثية الأبعاد، فإن جودة كل مثلث تُقاس بدائرته المحيطة: المثلثات النحيلة تُنتج دوائر هائلة وتظليلًا رديئًا، ولذلك تضيف خوارزميات التشبيك النقاط أو تنقلها تحديدًا حيث تكون الدائرة المحيطة أكبر من اللازم. وإذا بنيت مخطط فورونوي، فإن كل رأس فيه هو المركز المحيطي لمثلث من مواقع الإدخال. وإذا احتجت ببساطة إلى ملاءمة جسم دائري — عدسة أو أنبوب أو مسار التفاف — بثلاثة مواضع مقيسة، فالدائرة المحيطة هي الجواب.
تأخذ هذه الواجهة أزواج الإحداثيات الثلاثة وتُعيد المركز ونصف القطر مباشرةً، فتُعفيك من اشتقاق الصيغة بنفسك أو تنقيح جبرٍ ناقص كتبه غيرك.
كيف يُحسب المركز ونصف القطر
الحساب صيغة مغلقة قائمة على المحددات، لا بحث تكراري. فمركز الدائرة يجب أن يقع على المنصف العمودي للقطعة الواصلة بين النقطتين الأوليين، وعلى المنصف العمودي للقطعة الواصلة بين النقطتين الأخيرتين أيضًا؛ وتقاطع هذين المستقيمين هو المركز المحيطي. وإذا فُصّل ذلك، كان التقاطع خارج محددين مبنيين من مربعات إحداثيات النقاط، ومقامه ضعفا المساحة المؤشَّرة للمثلث الذي تكوّنه النقاط.
وهذا المقام هو كذلك اختبار الاستقامة: فإذا كان صفرًا، وقعت النقاط الثلاث على مستقيم واحد، وتعادلت المنصفات، ولم توجد دائرة منتهية — فترفض الواجهة الإدخال بخطأ صريح بدلًا من القسمة على صفر. وبعد معرفة المركز، يكون نصف القطر ببساطة المسافة من المركز إلى أي نقطة من النقاط الثلاث؛ والمسافات الثلاث متساوية بحكم الإنشاء، وهو ما يصلح أيضًا فحصًا عدديًا للاتساق. وتُدوَّر النتائج إلى عدد قابل للضبط من المنازل العشرية، عشرًا في الوضع الافتراضي، بحيث يكون الناتج ثابتًا وقابلًا للتكرار.
المدخلات والأخطاء والحدود العملية
الإدخال ستة أرقام: x1 وy1 وx2 وy2 وx3 وy3، زوج لكل نقطة. وتُقبل الأسماء المستعارة الشائعة مثل ax وbx وcx أو p1x، ويمكن إرسال القيم أرقامًا أو سلاسل رقمية بسيطة، مما يجعل الواجهة متسامحة حين يقرأ المُستدعي الإحداثيات من ملف نصي. ويتحكم حقل اختياري اسمه precision، من 0 إلى 15، في المنازل العشرية لكل حقل رقمي في الاستجابة.
لا معدل تقارب يُقلق ولا عشوائية: الأرقام الستة نفسها تُنتج دائمًا المركز نفسه ونصف القطر نفسه.
حالات الاستخدام
التحقق من جودة المثلثات في شبكة
احسب الدائرة المحيطة لكل مثلث في شبكة ديلوناي وأبلغ عن العناصر التي يتجاوز نصف قطرها عتبة الجودة لديك.
ملاءمة مسار دائري بثلاث نقاط طريق
حوّل ثلاثة مواضع مقيسة من GPS أو CNC إلى القوس المار بها، مع مركزه لوحدة التحكم ونصف قطره لجدول سرعات التغذية.
الأسئلة الشائعة
كم التكلفة؟
ويمكن أيضًا تشغيلها مجانًا في متصفحك على هذه الصفحة.
هل يمكن إرسال الإحداثيات سلاسل نصية؟
نعم. يمكن أن يكون كل إحداثي رقمًا أو سلسلة عشرية بسيطة مثل "12.5" أو "-3e2".
ما مدى دقة النتيجة؟
الصيغة مغلقة، فلا خطأ تقارب؛ ولا يُطبَّق إلا تقريب الفاصلة العائمة. ويحدد حقل precision (من 0 إلى 15، والافتراضي 10) المنازل العشرية في الاستجابة.
هل تُخزَّن بياناتي؟
لا. تُعالَج الإحداثيات في الذاكرة ثم تُستبعد؛ ولا يُعاد إلا المركز ونصف القطر.
لماذا تكون الدائرة المحيطة بمثلث رفيع كبيرة جدًا؟
لأن رؤوسه الثلاثة تكاد تقع على خط واحد، فلا بد أن تكون الدائرة المارة بها ضخمة. وتستفيد برامج توليد الشبكات من ذلك: المثلث ذو الدائرة المحيطة المفرطة عنصر رديء، فتُضاف عنده نقاط أو تُحرَّك.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/math/circumscribed-circle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x1":0,"y1":0,"x2":4,"y2":0,"x3":0,"y3":3}'const res = await fetch("https://api.kit.forhosting.com/math/circumscribed-circle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 0,
"x3": 0,
"y3": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/circumscribed-circle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 0,
"x3": 0,
"y3": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/circumscribed-circle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x1":0,"y1":0,"x2":4,"y2":0,"x3":0,"y3":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x1":0,"y1":0,"x2":4,"y2":0,"x3":0,"y3":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/circumscribed-circle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"x1": 0,
"y1": 0,
"x2": 4,
"y2": 0,
"x3": 0,
"y3": 3
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.circumscribed_circle",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تأخذ واجهة API للدائرة المحيطة إحداثيات x وy لثلاث نقاط في المستوى وتُعيد الدائرة الوحيدة التي تمر بها جميعًا: إحداثيات مركزها ونصف قطرها، إضافةً إلى القطر تسهيلًا. يعمل كل ذلك في تمريرة واحدة حتمية، مجانًا في المتصفح على هذه الصفحة، وبسعر $0.002 لكل طلب عند استدعائها عبر API.
المدخلات والأخطاء والحدود العملية
وترفض الواجهة ثلاثة أنواع من الإدخال بخطأ invalid_input واضح: إحداثي مفقود أو غير رقمي، ونقطتان متطابقتان — إذ يلزم ثلاث نقاط مختلفة — وثلاث نقاط مستقيمة، لأن الدائرة عندئذ تنحط إلى مستقيم في اللانهاية. ويُنفَّذ كل شيء على شبكتنا الطرفية دون أن يُحفظ شيء بعد ذلك، والشيفرة الحتمية نفسها تُشغّل النسخة المجانية في المتصفح على هذه الصفحة، فما تختبره يدويًا هو بالضبط ما تُعيده API بسعر $0.002 لكل طلب.
حالات التكامل
بناء رؤوس فورونوي من التمثيلات
اشتق كل رأس من رؤوس فورونوي بوصفه المركز المحيطي لمثلث من المواقع، بطلب API واحد لكل مثلث، مع رفض الحالات المستقيمة المنحطة رفضًا نظيفًا.
أسئلة تقنية
ماذا يحدث إذا كانت النقاط الثلاث على خط مستقيم واحد؟
لا تمر أي دائرة منتهية بثلاث نقاط مستقيمة، لذلك تُعيد API خطأ invalid_input يشرح الحالة بدلًا من رقم.
هل يمكن أن تتطابق نقطتان من النقاط؟
لا. يلزم ثلاث نقاط مختلفة؛ والنقاط المتطابقة تُرفض بخطأ invalid_input.