I’m attempting to make a 24 hour analog clock and currently have a 12 hour clock.
What I wrote:
currentTime = [NSDate date];
dateComponents = [calendar components:unitFlags fromDate:currentTime];
hour = [dateComponents hour];
minute = [dateComponents minute];
second = [dateComponents second];
hourAngle = (30 * hour + minute / 2);
minAngle = (6 * minute);
secAngle = (6 * second);
secondHand.transform = CGAffineTransformMakeRotation(secAngle * M_PI / 180);
minuteHand.transform = CGAffineTransformMakeRotation(minAngle * M_PI / 180);
hourHand.transform = CGAffineTransformMakeRotation(hourAngle * M_PI / 180);
This works perfectly for a 12 hour clock but I would like to make it 24 so I was advised to divide my angle values by 2 like this:
hourAngle = (30 * hour + minute / 2) /2;
minAngle = (6 * minute) /2;
secAngle = (6 * second) /2;
However this gives me a top to bottom 180 degree angle which resets after reaching the 180 degrees.
What do I need to change to get a full 360 degree rotation for my clock?
Clearly, the angles for minutes and seconds don’t change. Only the hour angle is halved. Also, be sure that hour reaches all values up to 23.