繁体   English   中英

iPhone中的2D多边形动画

[英]2D polygon animation in iPhone

我不确定“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);

然后将多边形path更改为另一个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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM