Comment puis-je calculer l'angle entre l'heure et les minutes les mains?
Je suis en train de séance d'entraînement de ce problème, mais j'ai encore de la difficulté à comprendre la logique pour résoudre ce problème.
hour degree = 360 / 12 = 30
minutes degree = 360 / 12 / 60 = 0.5
Donc, d'après cela, j'ai pensé que je pourrais formuler la fonction suivante en python:
def clockangles(hour, min):
return (hour * 30) + (min * 0.5)
Pour l'heure, il fonctionne très bien, comme il semble avoir un 1=1 cartographie. Mais de la minute où il y a un problème au moins. Quand il est à 0 minutes, l'aiguille des minutes indique 12.
Par exemple:
7pm: les mains pointant vers 7 heures et minutes pointant vers 12
Comment dois-je calculer le procès-verbal correctement? S'il vous plaît aidez-moi à comprendre la formule.
EDIT: Par exemple, si j'appelle la fonction ci-dessus avec 7pm, e.g clockangles(7,0) j'obtiens la valeur de 210. Toutefois, selon ce lien l'angle à 7:00 est de 150
min
par .5, de ne pas la diviser. (aussi, le renommer en quelque chose d'autre, que les ombres de la builtin)Êtes-vous essayer de calculer l'angle entre les heures et les minutes à la main? Dans un sens, parce qu'il y a toujours deux réponses? Dans le sens horaire, anti-horaire, l'angle de moins de 180degrees?
Grâce roippi. Peut-être que vous pourriez répondre avec plus de détails? 🙂
Aussi, où est "0 °" à la twleve la main?
Bon eh bien, 210 degrés (mesure des aiguilles d'une montre) est le même que 150 degrés (mesure dans le sens antihoraire). La page liée utilise juste la plus petite des deux angles. Aussi, êtes-vous de trouver l'angle entre les deux mains? Le reste de votre question ne semble pas poser la question, mais votre lien ne.
OriginalL'auteur CaseyJones | 2013-12-15
Vous devez vous connecter pour publier un commentaire.
D'accord. Vous essayez de trouver l'angle entre les deux mains. Puis ceci:
Est juste le nombre de degrés de la heure main de mouvements par minute. Pensez - y, l'aiguille des minutes se déplace à 360 chaque heure. Il n'y a que 60 minutes dans une révolution complète. 360/60 = 6 degrés par minute pour l'aiguille des minutes.
Donc, vous avez besoin de trouver la différence entre l'heure et la minute de la main. Ainsi, la fonction ressemble maintenant à:
Maintenant, c'est valable, donc nous pourrions nous arrêter ici. Cependant, je dois préciser que cela peut donner deux réponses de plus de 180 degrés et négatifs angles. Si vous ne voulez pas de ces choses (et de vos commentaires, il semble que vous n'avez pas), correct pour eux.
Maintenant, pas de négatif angles.
Maintenant, le plus court des deux angles formés par la mesure des aiguilles d'une montre et dans le sens inverse.
l'aiguille des heures se déplace comme l'aiguille des minutes se déplace, à droite? Donc, si vous êtes à 26 minutes, l'aiguille des heures 26/60ths entre deux heures de chiffres, non? Voici un exemple de ce que l'aiguille des heures est en train de faire.
Merci JFA. Je comprends maintenant. 🙂
OriginalL'auteur roippi
Ce n'est pas si difficile si vous pensez à ce sujet. Permet de considérer chaque main dans l'isolement de la première. L'aiguille des minutes de l'horloge tourne de 360 degrés dans les 60 minutes, de sorte que chaque minute soit 6 degrés. L'aiguille des heures de l'horloge tourne de 360 degrés dans les 12 heures, de sorte que nous savons qu'il se déplace un total de 30 degrés après chaque heure, mais vous devez tenir compte de l'avancement de l'aiguille des heures entre les heures. c'est à dire à 3:30 de l'aiguille des minutes est sur 6 et l'aiguille des heures a progressé au cours des 3 dernières. Nous pouvons calculer cette promotion tout simplement par (minutes/60) * 30 degrés, qui est l'équivalent minutes/2. Donc, une fois que nous connaissons les degrés de chaque côté, nous il suffit de trouver la différence. Et la formule sera comme
OriginalL'auteur Saurabh
Utiliser l'algorithme:
1.Minute d'angle = 360 * minutes /60
2.Angle horaire = [ 360 * (heure % 12) /12 ] + [ 360 * (minutes /60) * (1 /12) ]
3.L'Angle entre les heures et les minutes = (angle horaire - minute d'angle) % 360
OriginalL'auteur Prateek Joshi
Multiplier les heures en 60 c'est de le convertir en minutes.
heures*60=minutes
Maintenant ajouter la donnée minutes et converti en minutes.
donné minutes + converti mintes = nombre total de minutes
Maintenant diviser le nombre total de minutes par 2, c'est-à-trouver sa moyenne.
le nombre total de minutes /2
Maintenant, multipliez donné minutes par 6.
étant donné minutes * 6
Maintenant soustraire point 3 point 4.
Par cette méthode, vous obtiendrez la réponse exacte.
OriginalL'auteur Uchit Patel
Dans la solution suivante, la variable m se réfère à quelques minutes, et la variable h heures.
Nous allons séparer le problème en ses composants.
Maintenant, nous allons commencer la résolution de chaque composant.
(m /60)
. Depuis il y a 360 degrés, nous pouvons obtenir l'angle de l'aiguille des minutes à partir de 12 heures par(m /60) * 360
.L'aiguille des heures effectue un cycle complet, toutes les 12 heures. Depuis il y a 24 heures dans une journée, nous avons besoin de normaliser la valeur de l'heure à 12 heures. Ceci est accompli par
(h % 12)
, qui renvoie le reste de la valeur de l'heure divisé par 12.Maintenant, comme l'aiguille des minutes fait son cycle, l'aiguille des heures n'est pas seulement restent à la valeur exacte de
(h % 12)
. En fait, il se déplace à 30 degrés entre(h % 12)
et(h % 12) + 1
. Le montant par lequel l'aiguille des heures qui s'écarte de l'(h % 12)
peut être calculé en ajoutant à(h % 12)
le formulaire de pourcentage du cycle de l'aiguille des minutes, ce qui est(m /60)
. Dans l'ensemble, cela nous donne(h % 12) + (m /60)
.Maintenant que nous avons la position exacte de l'aiguille des heures, nous avons besoin d'obtenir le formulaire de pourcentage du cycle de l'aiguille des heures, que l'on peut obtenir par
((h % 12) + (m /60)) /12
. Depuis il y a 360 degrés, nous pouvons obtenir l'angle de l'aiguille de l'heure à partir de 12 heures par(((h % 12) + (m /60)) /12) * 360
.Maintenant que nous avons à la fois l'angle de la minute et l'heure à la main à partir de 12 heures, nous avons simplement besoin de trouver la différence entre les deux valeurs, et de prendre la valeur absolue (car la différence peut être négatif).
Donc dans l'ensemble, nous avons
abs(((((h % 12) + (m /60)) /12) - (m /60)) * 360)
.Ci-dessous est une fonction python qui calcule cette valeur. Il sera de retour selon la valeur de l'angle qui est le plus court.
OriginalL'auteur Lynn Samson
J'ai travaillé sur ce problème et a créé une équation:
ou
OriginalL'auteur Tamim
OriginalL'auteur MIIK7
Remarque :
60min = 360deg
1min = 6deg
par exemple:-
considérer le temps comme 2:20 (ie. 2h 20min)
abs((2h*5 min) - (20)min) = 10min
angle_1 = 10min x 6deg = 60 degrés
angle_2 = 360deg - 60 degrés = 300deg (signifie que l'angle de l'autre côté)
Ainsi, à partir de deux angles angle_1 est petit.
par conséquent, angle_min = 60 degrés
OriginalL'auteur Manoj Selvin
OriginalL'auteur Salamandr