I am rotating CGPoints using a CGAffineTransformRotation
Executing this code:
double degToRad(double degrees) {
return ((degrees) * (M_PI / 180.0));
}
CGAffineTransform rotate = CGAffineTransformMakeRotation(degToRad(-90.0));
NSLog(@"before n.nP %@",NSStringFromCGPoint(node.nodePoint));
node.nodePoint = CGPointApplyAffineTransform(node.nodePoint, rotate);
NSLog(@"after n.nP %@",NSStringFromCGPoint(node.nodePoint));
Gives these results:
before n.nP {96, 196}
after n.nP {196, -95.999999999999986}
This is understandable; -95.999... as opposed to -96 is due to some internal rounding/the limit on the degree of expression of M_PI
. The degree of difference in this instance is negligible.
But these results:
before n.nP {0, 768}
after n.nP {768, 4.702643708725836e-14}
...are what puzzle me. I expect {768, 0}
or pretty dang close as a return value. Why is the degree of difference in this case so large?