لماذا يتم استخدام جيب التمام لحساب قيم x وقيم القيم y للقوس؟
-
28-09-2019 - |
سؤال
أحاول فهم الرياضيات على عرض Raphael.js:
الخروج عن طريقة القطاع:
function sector(cx, cy, r, startAngle, endAngle, params) {
var x1 = cx + r * Math.cos(-startAngle * rad),
x2 = cx + r * Math.cos(-endAngle * rad),
y1 = cy + r * Math.sin(-startAngle * rad),
y2 = cy + r * Math.sin(-endAngle * rad);
return paper.path(["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
}
هذا هو العرض التجريبي الفعلي:http://raphaeljs.com/pie.html
إن الرياضيات الخاصة بي صدئة بعض الشيء وأحاول فهم وظيفة القطاع - بالنظر إلى معلمات البدء والتهديد (كل قيم نقطة البداية والنهاية بين 0 و 360 رسم قوس) ، لماذا تعمل هذه الوظيفة؟
المحلول
كل هذا يتوقف على كيفية علاجك startAngle
و endAngle
. يبدو أن هذا يعاملهم على أنهم يبدأون من الأفقي إلى اليمين (أي زاوية 0 تشير إلى الشرق) والذهاب في اتجاهين (وبالتالي فإن زاوية 45 درجة تشير إلى الجنوب الشرقي.
عادة في الرياضيات ، نعتبر الزوايا التي تبدأ من الأفقي إلى اليمين ، ولكن زيادة عكس اتجاه عقارب الساعة ... ولكن إذا طلبت من عالم غير مائي لرسم زاوية ، فقد يعاملها بشكل جيد من أعلى (أي شمالًا) في اتجاه عقارب الساعة. هذا يبدو أنه يأخذ مزيجًا :) ليس هناك إجابة "خاطئة" أو "صحيحة" هنا - إنها مسألة تعريف.
نظرًا لأن الصور شائعة ، فإليك الأنظمة الثلاثة التي وصفتها ، على افتراض أن الخط يطول r
:
الرياضيات الطبيعية: عكس اتجاه عقارب الساعة من المحور السيني
(مصدر: arachsys.com)
يطلب من الرجل في الشارع رسم زاوية (في اتجاه عقارب الساعة من المحور ص)
الزوايا المستخدمة في هذا الرمز (في اتجاه عقارب الساعة من المحور السيني)
نصائح أخرى
مجرد إلقاء نظرة على ما الخطيئة و cos في الواقع يعني في دائرة:
إذا كان لديك نقطة على دائرة تشكل زاوية ألفا ، فإن cos alpha هو الجزء X من النقطة التي يكون ألفا الخطيئة هي الجزء y.
يوضح هذا الرسم التوضيحي ، لماذا تنفي الزاوية.
هذا يعني أنه يمكنك الآن تحديد في اتجاه عقارب الساعة زوايا ، والتي يفضل معظم الناس مع الساعات التماثلية.
نظرًا لأن النقطة التعسفية على محيط المركز (CX ، CY) و RADIUS R لها الإحداثيات التالية (يتبع مباشرة من التعاريف الهندسية COS و SIN - نسبة بين أطوال القسطرة المقابلة و hypotenuse):
x = cx + R*cos(a)
y = cy + R*sin(a) for 0 <= a < 2π
لذا فإن تحديد حدود على الزاوية A يمكنك تحديد القوس التعسفي.
إذا كنت تأخذ 0 درجة أفقية مع زيادة x و 90 درجة عمودي مع زيادة y ثم على النحو التالي:
cos(0) = 1
sin(0) = 0
cos(90) = 0
sin(90) = 1
يمكنك تغيير قيمة X عن طريق ضربها بواسطة جيب التمام وتغيير قيمة Y عن طريق ضربها بواسطة الجيب.