iPhone中的二维多边形动画

iPhone中的二维多边形动画,iphone,animation,polygon,Iphone,Animation,Polygon,我不确定“2d多边形动画”是否是我试图实现的正确术语,但基本上我希望动画类似于3D变形,但使用2d多边形,以便我有相同多边形的多个“帧”,其中顶点位于不同位置,并在它们之间插值以实现动画 在我开始自己实现它之前,我想知道在iOS中是否有一些库或东西可以实现这一点。至少在Cocos2D中,我没有发现这样的功能 定义多边形的编辑器也是一个不错的工具,它可以导出为XML或其他格式,以便轻松地将其导入到我的应用程序中。应该有一个专业的编辑软件来做这件事,对吗?这应该是很平常的事?我试着用谷歌搜索,但我想

我不确定“2d多边形动画”是否是我试图实现的正确术语,但基本上我希望动画类似于3D变形,但使用2d多边形,以便我有相同多边形的多个“帧”,其中顶点位于不同位置,并在它们之间插值以实现动画

在我开始自己实现它之前,我想知道在iOS中是否有一些库或东西可以实现这一点。至少在Cocos2D中,我没有发现这样的功能


定义多边形的编辑器也是一个不错的工具,它可以导出为XML或其他格式,以便轻松地将其导入到我的应用程序中。应该有一个专业的编辑软件来做这件事,对吗?这应该是很平常的事?我试着用谷歌搜索,但我想我错过了正确的关键词。

核心动画可以做到这一点-包括在SDK中。我想你需要看看CAShapeLayer。CAShapeLayer可以做到这一点。您需要做的是创建图层,并将其
path
属性指定为path1,这是一个按如下方式创建的CGPathRef对象:

// four-sided polygon
CGMutablePathRef path1 = CGPathCreateMutable(); 
CGPathMoveToPoint(path1, NULL, 160, 290);
CGPathAddLineToPoint(path1, NULL, 170, 300);
CGPathAddLineToPoint(path1, NULL, 160, 310);
CGPathAddLineToPoint(path1, NULL, 150, 300);

CAShapeLayer* bgPoly = [CAShapeLayer layer];
bgPoly.path = path1;
bgPoly.backgroundColor = [UIColor blueColor].CGColor;

CGPathRelease(path1);
然后将多边形路径更改为不同的CGPathRef对象path2,您将得到所需的:

// morphs to a six-sided polygon
CGMutablePathRef path2 = CGPathCreateMutable(); 
CGPathMoveToPoint(path2, NULL, 160, 290);
CGPathAddLineToPoint(path2, NULL, 170, 300);
CGPathAddLineToPoint(path2, NULL, 170, 300);
CGPathAddLineToPoint(path2, NULL, 160, 310);
CGPathAddLineToPoint(path2, NULL, 150, 300);
CGPathAddLineToPoint(path2, NULL, 150, 300);

bgPoly.path = path2;

CGPathRelease(path2);

你说的是运动二元体吗?运动二元体包括平滑地移动和缩放二维多边形。但我正在尝试将多边形从另一个形状变形到另一个形状。嗯,有趣的是,我认为它包括了这两个形状。Flash中的形状tweening似乎有点类似