绘制一个圆并使用动画将其转换为矩形

时间:2012-04-20 09:00:12

标签: iphone objective-c animation cocos2d-iphone geometry

所以我用draw方法创建了一个圆圈:

glLineWidth(16);
glColor4ub(0, 255, 0, 255);
drawCircle( ccp(s.width/2,  s.height/2), 100, 0, 10, NO);

我想知道是否可以将此形状转换为带动画的矩形。谢谢 。对不起我的英语我是法国人:/

2 个答案:

答案 0 :(得分:2)

为简单起见,我使用4个立方贝塞尔曲线 - 每个象限的圆圈一条曲线。 (这不是一个完美的圆圈,但也不是100段圆圈!)然后,使用cocos2d提供的schedule:功能,我会逐渐移动每条曲线的控制点,直到它们为止使用曲线的原点目的地垂直或水平排列。这会将曲线变成4条直线:一个矩形!

嗯,确切地说是一个正方形。您还必须移动所有4条曲线的原点目的地,以形成一个不是正方形的矩形,但您会得到我希望的想法吗?

有关其他信息,请参阅以下链接:

编辑:添加图片

Bezier Circle

d =根据以下公式计算的值:http://www.cgafaq.info/wiki/Bezier_Circle

开始 控制1 控制2 end 是在cocos2d中制作三次贝塞尔曲线所需的4个点。

答案 1 :(得分:0)

您必须为此编写代码。

例如,您可以创建围绕圆圈的多个控制点。这些控制点中的每一个可以包括3个点。两个点代表圆上的两个点,一个点控制两点之间绘制的线的曲线。现在,您可以为曲线上的控制点之间的运动设置动画,使它们移动成为矩形上的控制点,同时为第三个控制点的运动设置动画,使边缘从曲线变为直线。 / p>