首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKShapeNode.Get半径?

SKShapeNode.Get半径?
EN

Stack Overflow用户
提问于 2015-07-05 18:07:51
回答 2查看 663关注 0票数 0

有可能得到SKShapeNode的半径值吗?

问题是,在用户发布后,我需要创建一个相同的圆圈,同时从视图中删除第一个圆圈。

代码语言:javascript
复制
    SKShapeNode *reticle = [SKShapeNode shapeNodeWithCircleOfRadius:60];
    reticle.fillColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3];
    reticle.strokeColor = [UIColor clearColor];
    reticle.position = CGPointMake(location.x - 50, location.y + 50);
    reticle.name = @"reticle";
    reticle.userInteractionEnabled = YES;
    [self addChild:reticle];

    [reticle runAction:[SKAction scaleTo:0.7 duration:3] completion:^{
        [reticle runAction:[SKAction scaleTo:0.1 duration:1]];
    }];

然后

代码语言:javascript
复制
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
....
    SKNode *node = [self childNodeWithName:@"reticle"];

    //take the position of the node, draw an imprint

    /////////Here is where I need to get the circle radius.

    [node removeFromParent];

}

如何取圆半径,这样我就可以说

代码语言:javascript
复制
SKShapeNode *imprint = [SKShapeNode shapeNodeWithCircleOfRadius:unknownValue];

我试过了,做了一个精确的圆圈副本

代码语言:javascript
复制
SKShapeNode *imprint = (SKShapeNode *)node;

然而,这仍然跟随动画,因为我需要它停止,在这一点上它是在。我不想采取"stopAllAnimations“的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-05 19:38:33

可以使用形状节点的path属性使用CGPathGetBoundingBox(path)确定形状的边框。从边界开始,你可以用宽度(或高度)除以2来计算圆的半径。

代码语言:javascript
复制
CGRect boundingBox = CGPathGetBoundingBox(circle.path);
CGFloat radius = boundingBox.size.width / 2.0;
票数 2
EN

Stack Overflow用户

发布于 2019-06-15 17:20:15

更新Swift 5

代码语言:javascript
复制
myVariable.path.boundingBox.width / 2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31233428

复制
相关文章

相似问题

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