حاسبة الظل العكسي بوسيطين بالدرجات
المتجه الذي فيه x تساوي −1 وy تساوي 1 يشير إلى 135°، أي إلى أعلى اليسار. أدخل الإحداثيين، y أولًا ثم x، لتحصل على الزاوية بالدرجات بين −180 و180 دون فقدان الربع. مجانًا في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- Y
- 1
- X
- -1
- الدرجات
- 135
تحوّل حاسبة الظل العكسي بوسيطين هذه اتجاهًا ديكارتيًا إلى زاوية مقيسة بالدرجات. أدخلوا الإحداثي الرأسي y والإحداثي الأفقي x، فتحسب الحاسبة atan2(y, x) مع الحفاظ على الربع الذي يضيع عند أخذ الظل العكسي البسيط لناتج قسمة y على x. تغطي النتيجة المدى الرئيسي كاملًا من سالب مئة وثمانين إلى مئة وثمانين درجة، ما يجعلها مفيدة للاتجاهات والمتجهات والرسوميات والروبوتات والملاحة والتحقق الهندسي. الحساب حتمي ولا يعتمد على أي اتصال بالشبكة، ويرفض الأصل بوضوح لأن النقطة (0، 0) ليس لها اتجاه.
لماذا يحفظ الوسيطان الاتجاه
يستقبل الظل العكسي التقليدي ذو الوسيط الواحد نسبةً، هي في العادة y مقسومًا على x. وهذه النسبة وحدها لا تكفي للتمييز بين كل الاتجاهات. فعلى سبيل المثال، تعطي النقطتان (1، 1) و(−1، −1) النسبة نفسها، مع أن متجهيهما يشيران إلى ربعين متقابلين.
أما الصيغة ذات الوسيطين فتحتفظ بالإحداثيين بإشارتيهما وتستخدم كلًّا منهما على حدة، فتستطيع أن تحدد هل يقع الاتجاه يمين المحور الأفقي أو يساره، وفوقه أو تحته. تتبع هذه الحاسبة الترتيب المعتاد atan2(y, x): المركبة الرأسية هي y والمركبة الأفقية هي x. تدور الزوايا الموجبة عكس اتجاه عقارب الساعة انطلاقًا من محور x الموجب، وتدور السالبة مع اتجاه عقارب الساعة.
المتجه الذي يشير إلى اليمين يعطي صفر درجة، والذي يشير إلى الأعلى يعطي تسعين درجة، والذي يشير إلى الأسفل يعطي سالب تسعين درجة. أما المتجه الواقع على محور x السالب فيعطي مئة وثمانين درجة. وهذا السياق الاتجاهي الكامل هو السبب الرئيسي لاستخدام atan2 بدل حساب الظل العكسي لناتج قسمة يدويًا.
كما أنه يتجنب القسمة على صفر عندما تكون x صفرًا، لأن الإحداثيين يذهبان مباشرة إلى الدالة الزاوية بدل المرور بنسبة محسوبة على حدة.
كيف تُدخلون الإحداثيين وتقرؤون النتيجة
تخيّلوا الزوج متجهًا يبدأ من الأصل وينتهي عند النقطة التي إحداثيها الأفقي x وإحداثيها الرأسي y. تبقى النتائج الصحيحة والزوايا القطرية المألوفة موجزة، بينما تحتفظ الميول الأقل شيوعًا بدقة مفيدة. تقع القيمة الرئيسية ضمن المدى الكامل بالدرجات الموصوف لدالة atan2: فالقيم الواقعة تحت المحور الأفقي سالبة في العادة، والقيم الواقعة فوقه موجبة.
وإذا احتاج تطبيقكم إلى مدى على طريقة البوصلة من صفر إلى ثلاثمئة وستين، فحوّلوا النتيجة السالبة بإضافة ثلاثمئة وستين إليها بعد استلامها. لا تعكسوا الحقلين: تستقبل atan2 الإحداثي y أولًا ثم x، وتبديلهما يقيس في العادة زاوية مختلفة. ويُرفض الزوج (0، 0).
ومع أن بعض بيئات البرمجة تعيد صفرًا اصطلاحيًا لهذا الإدخال، فإن المتجه الصفري ليس له طول ولا اتجاه وحيد، ولذلك فإن الإبلاغ عن زاوية سيشوّه الحقيقة الهندسية.
أين تفيد الزوايا الحتمية بالدرجات
يظهر الظل العكسي بوسيطين حيثما وجب تحويل زوج من المركبات ذات الإشارة إلى اتجاه. في الرسوميات التفاعلية، اطرحوا موضع الجسم من موضع المؤشر وأرسلوا الإزاحتين الرأسية والأفقية الناتجتين لإيجاد زاوية الدوران نحو المؤشر. وفي الروبوتات، يمكن تحويل قياسات دوران العجلات أو مركبات السرعة أو الإزاحة نحو هدف إلى اتجاه يُستخدم في التشخيص ومنطق التحكم.
وفي المعالجة المسبقة للبيانات الجغرافية أو الملاحية، يمكن التحقق من الفروق المسقطة بين الشرق والغرب وبين الشمال والجنوب كاتجاه مستوٍ قبل تطبيق نموذج سمت أكثر تخصصًا. ويستطيع المعلمون استخدام الأداة لشرح أهمية معلومات الربع، ويمكن لمجموعات الاختبار استخدامها لإنشاء حالات مرجعية واضحة للمحاور والأقطار والمتجهات أيًّا كان اتجاهها. لا يستخدم التنفيذ سوى التحقق من أن الأعداد منتهية، وعملية atan2 أصلية وحتمية، والتحويل بالضرب في مئة وثمانين مقسومةً على pi، وتقريبًا عشريًا ثابتًا.
ولا يستدعي نموذجًا لغويًا، ولا يتصل بخدمة خارجية، ولا يستخدم العشوائية، ولا يعتمد على التاريخ الحالي. وبفضل هذه الخصائص تعطي المدخلات المتكررة النتيجة نفسها دائمًا، وتصلح القدرة للسكربتات وفحوص البناء والتمارين الصفية وخطوط المعالجة الهندسية الصغيرة التي تحتاج إلى نتيجة واضحة بالدرجات لا إلى قراءة بصرية مبهمة.
حالات الاستخدام
توجيه جسم ثنائي الأبعاد
حوّلوا إزاحات المؤشر أو الهدف ذات الإشارة إلى زاوية دوران مع الحفاظ على الربع الصحيح.
التحقق من اتجاه الروبوت
حوّلوا مركبتي الحركة الأفقية والرأسية إلى اتجاه بالدرجات قابل لإعادة الإنتاج في الاختبارات والتشخيص.
شرح سلوك الأرباع
قارنوا أزواج إحداثيات لها النسبة نفسها، وبيّنوا لماذا تعيد atan2 اتجاهات مختلفة في المستوى الكامل.
الأسئلة الشائعة
لماذا تحتاج atan2 إلى y وx معًا؟
إشارتا الإحداثيين، كلٌّ على حدة، هما ما يحدد الربع. أما ناتج قسمة y على x فيفقد هذه المعلومة عندما يكون الاتجاهان متقابلين.
بأي ترتيب أقدّم الإحداثيين؟
قدّموا y أولًا ثم x عبر الحقلين المسمّيين. وهذا يطابق التوقيع المعتاد atan2(y, x).
ما المدى الذي يمكن أن تأخذه النتيجة؟
تمتد الزاوية الرئيسية من سالب مئة وثمانين إلى مئة وثمانين درجة، وتمثل القيم السالبة دورانًا مع اتجاه عقارب الساعة انطلاقًا من محور x الموجب.
لماذا تُرفض النقطة (0، 0)؟
المتجه الصفري ليس له اتجاه وحيد، لذا فالزاوية عند الأصل غير معرّفة هندسيًا.
كيف أحوّل نتيجة سالبة إلى زاوية على طريقة البوصلة؟
أضف دورة كاملة، أي ثلاثمئة وستين درجة، إلى أي نتيجة سالبة. فالنقاط الواقعة تحت المحور الأفقي تعطي زاوية سالبة، وبهذه الإضافة تحصل على الاتجاه نفسه مقيسًا على الدائرة كاملة.
بأي ترتيب أدخل الإحداثيين؟
أدخل y أولًا، وهي المركبة الرأسية، ثم x، وهي المركبة الأفقية. وإذا بدّلت بينهما قاست الحاسبة زاوية أخرى: فعندما تكون y مساوية للعدد 1 وx مساوية للعدد −1 تكون النتيجة 135°.
ما مجال النتيجة؟
تقع النتيجة بين −180 و180 درجة. الزوايا الموجبة تدور من محور x الموجب عكس عقارب الساعة، والسالبة مع عقارب الساعة، فالاتجاه إلى الأعلى 90 درجة وإلى اليسار 180 درجة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/trig/atan2-degrees \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"y":1,"x":-1}'const res = await fetch("https://api.kit.forhosting.com/trig/atan2-degrees", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"y": 1,
"x": -1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/atan2-degrees",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"y": 1,
"x": -1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/atan2-degrees", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"y":1,"x":-1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"y":1,"x":-1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/atan2-degrees", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"y": 1,
"x": -1
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.atan2_degrees",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
كيف تُدخلون الإحداثيين وتقرؤون النتيجة
قدّموا y وx كليهما في صورة أعداد JSON منتهية. تعيد الحاسبة حقلًا واحدًا هو degrees، مقرّبًا إلى اثنتي عشرة منزلة عشرية على الأكثر ليبقى JSON ثابتًا وسهل القراءة. الحقلان كلاهما إلزاميان، والنصوص مثل الرقم واحد المكتوب بين علامتي تنصيص لا تُحوَّل بصمت، لأن API رقمية صارمة تكشف أخطاء شكل البيانات مبكرًا.
أين تفيد الزوايا الحتمية بالدرجات
النسخة العاملة في المتصفح مريحة لحساب منفرد، أما الطلبات المؤتمتة فتكلّف $0.002 لكل عنصر ناجح.
أسئلة تقنية
كم تبلغ تكلفة الحساب عبر API؟
يكلّف كل طلب API ناجح $0.002. ويمكن لحاسبة المتصفح تنفيذ الحساب الحتمي نفسه محليًا.