我已阅读以下内容,从一步仿射变换绕点旋转?:
CGAffineTransform transform = CGAffineTransformMakeTranslation(x, y);
transform = CGAffineTransformRotate(transform, a);
transform = CGAffineTransformTranslate(transform,-x,-y);
但是,当我这样做时,转换后的图像遍布地图,很少出现在屏幕上。
我已经尝试过制作一个可以放置图像的系统;如果您运行一个循环并放置多个值,则会出现一个螺旋。然而,虽然我可能最终能够解开图像旋转与我希望它们旋转的点之间的关系,但我想寻求最佳解决方案来“我这里有一个图像;我认为这一点是它的中心;我希望它围绕中心旋转这个量,但不会移位。”
我正在尝试修改http://JonathansCorner.com/ancient-clock/的端口,现在我正在尝试放置时针。所有尝试做上面的歌曲和舞蹈,并翻译它以使其中心位于所需的中心,都失败了。
对于这个时钟的指针,我怎样才能说“我希望指针在以下旋转中”并将它们适当地放置在中心周围?
- 编辑 -
这段代码的关键部分是为了使用层来响应评论而编辑的,它是:
UIImage *hourHandImage = [UIImage imageNamed:@"hour-hand.png"];
UIImageView *hourHandView = [[UIImageView alloc] initWithImage:hourHandImage];
float hourRotation = .5;
hourHandImage = [UIImage imageNamed:@"hour-hand.png"];
hourHandView = [[UIImageView alloc] initWithImage:hourHandImage];
CGAffineTransform transform = CGAffineTransformMakeTranslation(centerX - 21, -centerY - 121);
// transform = CGAffineTransformRotate(transform, hourRotation);
// transform = CGAffineTransformTranslate(transform, 2 * centerX, 2 * centerY);
hourHandView.transform = transform;
hourHandView.layer.anchorPoint = CGPointMake(centerX, centerY);
hourHandView.layer.affineTransform = CGAffineTransformRotate(transform, hourRotation);
[self.view addSubview:hourHandView];
谢谢,
- 编辑 -
我现在减少了一些东西;如果我遵循一些说明,我有:
CGAffineTransform transform = CGAffineTransformMakeTranslation(100 -21, 100 -121);
transform = CGAffineTransformRotate(transform, hour / 12.0 * M_PI * 2.0);
transform = CGAffineTransformTranslate(transform, -330, 330);
hourHandView.transform = transform;
我想努力把这些数字弄出来,但这有一个小时的 9:00 正确显示。
感谢你的帮助!