我有一个游戏,你有“斑点”和“连接器”。
我做了一个连接两个“斑点”…的UIImageView但正如你所看到的(如果图片有效),当斑点几乎堆积在一起时,就像左边一样,它就不起作用了。这是我的代码…我想知道在这种情况下,你如何使旋转更准确。
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!!因此,我可以更改图像并使其具有动画效果,使其看起来像是从一个斑点到另一个斑点的电流。
如果有人能告诉我如何使旋转更准确,将不胜感激。谢谢!
发布于 2012-03-13 08:52:00
您应该使用atan2(y,x),而不是tanh(y/x)。也就是说,您需要的是反切线,而不是双曲正切。
https://stackoverflow.com/questions/9676872
复制相似问题