سؤال

في جافا سكريبت، وأنا أحاول رسم الخط الذي هو في زاوية التي يحددها المستخدم.

والأساس، ولدي نقطة (س، ص) وزاوية لإنشاء النقطة التالية في. ويبلغ طول خط تحتاج إلى أن تكون 10px.

ودعونا نقول أن نقطة البدء به هو (180، 200) ... إذا كنت تعطيه زاوية "A" و(اعتقد) الوتر هو 10، ما من شأنه بلدي المعادلة (ق) تكون للحصول على X وY لمنحدر؟

وشكرا لمساعدتكم!

هل كانت مفيدة؟

المحلول

وعلى افتراض H = الوتر (10 في المثال الخاص بك)، وهذا هو صيغة لالمنحدر الخاص بك:

Y2 = H(Sin(A)) + Y1
   = 10(Sin(A)) + 200

X2 = Sqrt((H^2)-(Y2^2)) + X1
   = Sqrt(100 - (Y2^2)) + 180

وحتى الآن كنت قد حصلت على

(180, 200) -> (X2, Y2)

وأين X2، Y2 سوف تختلف تبعا لقيم A و H

لمراجعة حساباتنا - A (كما المدخلة من قبل المستخدم) يمكن حسابها باستخدام معادلة الانحدار استبدال X1، X2، Y2 Y1 والقيم مع المدخلات والمخرجات الناتجة الأصلي

A = InvTan((Y2 - Y1) / (X2 - X1))
  = InvTan((Y2 - 200) / (X2 - 180))

نصائح أخرى

وكذلك، من علم المثلثات الأساسية ...

والخطيئة و° = Y / 10

وكوس و° = X / 10

10 ^ 2 = Y ^ 2 + X ^ 2

وأما السيد دويل ضمنية snarkily، والرياضيات ليست بالأمر الصعب، ولكن:

1) تأكد من أنك واضح حول ما تتم الإشارة إليه في زاوية ل، وما الاتجاهات تذهب الإحداثيات. يفترض معظم علم حساب المثلثات أشياء بسيطة كنت تتعامل مع الإحداثيات الديكارتية التقليدية مع x يزداد إلى اليمين، و y زيادة تصل الصفحة، في حين أن معظم الرسم المعهد يكون ذ زيادة أسفل الصفحة والعاشر زيادة إلى اليمين.

2) تأكد من أنك تفهم ما إذا كانت وظائف الرياضيات تحتاج درجة أو راديان وتزويدهم الحجج المناسبة.

وربما أفضل طريقة للنظر في هذه المشكلة هو استخدام ناقلات:


<الفرعية> (المصدر: equationsheet.com )

ويمكنك أيضا كتابة ناقلات بهذه الطريقة:


<الفرعية> (المصدر: equationsheet.com )

حيث


<الفرعية> (المصدر: equationsheet.com )

ووضع أول يساوي الثانية يتيح لنا حل لنقطة النهاية نظرا لنقطة البداية، والزاوية، وبعد:


<الفرعية> (المصدر: equationsheet.com )


<الفرعية> (المصدر: equationsheet.com )

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top