首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGAffineTransformMakeRotation不能正常工作

CGAffineTransformMakeRotation不能正常工作
EN

Stack Overflow用户
提问于 2012-03-13 08:47:42
回答 1查看 487关注 0票数 0

我有一个游戏,你有“斑点”和“连接器”。

我做了一个连接两个“斑点”…的UIImageView但正如你所看到的(如果图片有效),当斑点几乎堆积在一起时,就像左边一样,它就不起作用了。这是我的代码…我想知道在这种情况下,你如何使旋转更准确。

代码语言:javascript
复制
UIImageView *connector = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"RedConnector.png"]];
        connector.contentMode = UIViewContentModeScaleToFill;
        connector.hidden = NO;
        connector.alpha = 1;

        connector.frame = CGRectMake(0, 0, [self DistanceBetweenPoints:speck1.center :speck2.center], 7);
        connector.center = CGPointMake((speck1.center.x + speck2.center.x)/2, (speck1.center.y + speck2.center.y)/2);
//This is where the prob is:
        connector.transform = CGAffineTransformMakeRotation(tanh((speck2.center.y - speck1.center.y)/(speck2.center.x - speck1.center.x)) );
        [Connectors addObject:connector];
        [self.view addSubview:connector];

"DistanceBetweenPoints“不是问题所在。这很好用。另外,我知道中心和框架是多余的-,我稍后会解决这个问题。第三,我已经确保了两个斑点永远不会直接重叠在一起(永远不会被零除)。最后,我仍然希望这些是UIIMAGEVIEWS!!因此,我可以更改图像并使其具有动画效果,使其看起来像是从一个斑点到另一个斑点的电流。

如果有人能告诉我如何使旋转更准确,将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-13 08:52:00

您应该使用atan2(y,x),而不是tanh(y/x)。也就是说,您需要的是反切线,而不是双曲正切。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9676872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档