The*_*eme 0 objective-c rotation cgaffinetransform ios
我有一个游戏,你有"斑点"和"连接器".
我创建了一个连接两个"斑点"的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];
Run Code Online (Sandbox Code Playgroud)
"DistanceBetweenPoints"不是问题.这很好.另外,我知道中心和框架有点多余 - 我稍后会解决这个问题.第三,我确保两个斑点永远不会直接相互叠加(永远不会除以零).最后,我仍然希望这些是UIIMAGEVIEWS !! 因此,我可以更改图像并为它们设置动画,使其看起来像是从斑点到斑点的电流.
如果有人能告诉我如何使旋转更准确,那将非常感激.谢谢!