قم بتعيين ساعة تناظرية في الوقت المحدد مع الإيماءات، لمس Hand Dide Clockwise أو Counter - عقارب الساعة

StackOverflow https://stackoverflow.com//questions/24039913

سؤال

أنا عالق في محاولة لجعل فئة تتيح للمستخدمين تعيين ساعة تناظرية في الوقت المحدد. يتعين عليهم نقل اليد الدقيقة، وليس ساعة اليد، في اتجاه عقارب الساعة أو عكس اتجاه عقارب الساعة من أجل ضبط الوقت الحالي. تنقل ساعة اليد نفسها وفقا لتقدم اليد الدقيقة، لكنني لا أستطيع أن أكون قادرا على نقل ساعة اليد بشكل صحيح. ليس لديها حركة سلسة في كل مرة يمر عبر الساعة الثانية عشر والسادسة، حيث توجد نقاط حاسمة زاوية.

هذا هو تجريبي حتى هذه اللحظة. في الساعة الثانية عشر، تساوي الزاوية 0 درجة، زاوية الدورة الدنيا بالطبع، وفي الساعة السادسة، زاوية 180 درجة، زاوية ماكسيمون. لذلك، من اثني عشر إلى ستة (في اتجاه عقارب الساعة)، لدينا زوايا إيجابية (0،180)، ومن ستة إلى اثني عشر (في اتجاه عقارب الساعة)، لدينا زوايا سلبية (-180،0). هذا جيد، ولكن إذا أردت حساب ما سيكون هو الموضع الصحيح من ساعة اليد وفقا لتقدم اليد الدقيقة، لا بد لي من ترجمة الزوايا إلى 0-360 درجة مجموعة.

هنا هو المكان الذي تعامل فيه عن الإيماءات:

giveacodicetagpre.

هنا هو المكان الذي أترجم فيه الزوايا:

giveacodicetagpre.

وهنا هو المكان الذي أعرفه إذا كان يد دقيقة تبدأ تدورا جديدا:

giveacodicetagpre.

هل يمكن لأي شخص مساعدتي قليلا؟ إذا كان بإمكان أي شخص مساعدتي، أعدك بوضع اسمك لأول ابنتي الأولى التي لم تجديدها ... تمزح فقط.

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

المحلول

اكتشفت أين كانت المشكلة ...

كانت المشكلة هي طريقة "ظروف" داخل Newspin (). هنا، قبل ظروف الاختيار، قمت بترجمة زوايا إلى التنسيق الأصلي (من 0 درجة إلى 180 درجة لمدة 120 درجة في الساعة السادسة، وفي اتجاه عقارب الساعة، ومن -180 درجة إلى 0 درجة، لمدة الساعة السادسة إلى اثني عشر س "الساعة، في اتجاه عقارب الساعة أيضا). لذلك، بدلا من ذلك، تحقق مما إذا كان المستخدم يبدأ تدور جديد مع يد دقيقة، فقد كان يضيف / طرح تدور جديد في كل مرة يمر عبر الساعة السادسة بدلا من الساعة الثانية عشر.

لذلك، قمت بإصلاحه تعديل هذه الشروط، والتحقق من زوايا اليد دقيقة، السابقة والحالية، على شكل 360 درجة. الآن، إذا كانت الزاوية السابقة أكبر من 355 درجة والزاوية الحالية أصغر من 5 درجات، فأنا أضيف تدور جديد إلى mspinnumber. وبالمثل، إذا كانت الزاوية السابقة أصغر من 5 درجات والزاوية الحالية أكبر من 355 درجة، فأنا طرح تدور إلى mspinnumber. أنا أيضا تغيير اسم الطريقة من NewsPin () إلى Calculatehourhandangle ().

giveacodicetagpre.

أنا أيضا التخلص من التعليمات البرمجية غير الضرورية في OnTouch () الطريقة:

giveacodicetagpre.

الآن أتمكن من معرفة ساعة واحدة قام بتعيين المستخدم، لأنني أعرف الموضع الأولي من ساعة اليدين وعدد يدور وزاوية اليد الدقيقة.

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