Iphone 画一个圆,并用动画将其转换为矩形

Iphone 画一个圆,并用动画将其转换为矩形,iphone,objective-c,animation,cocos2d-iphone,geometry,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); 我想知道是否可以通过动画将此形状变换为矩形。非常感谢。对不起,我的英语是法语://您必须为此编写代码 例如,可以在圆周围创建多个控制点。每个控制点可由3个点组成。两个点表示圆上的两个点,一个点控制两点之间绘制的直线的曲线。现在,您可以为曲线上的控制点之间的

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

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

我想知道是否可以通过动画将此形状变换为矩形。非常感谢。对不起,我的英语是法语://

您必须为此编写代码


例如,可以在圆周围创建多个控制点。每个控制点可由3个点组成。两个点表示圆上的两个点,一个点控制两点之间绘制的直线的曲线。现在,您可以为曲线上的控制点之间的运动设置动画,使它们移动成为矩形上的控制点,同时为第三个控制点的运动设置动画,使边从曲线变为直线。

为简单起见,我将使用4条三次贝塞尔曲线-圆的每个象限一条曲线。(这不是一个完美的圆,但也不是一个100段的圆!)然后,使用cocos2d提供的
时间表:
功能,我会逐渐移动每条曲线的控制点,直到它们与曲线的原点终点垂直或水平对齐。这将把曲线变成4条直线:一个矩形

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

有关更多信息,请参见以下链接:

  • 贝塞尔圆数学-
  • cocos2d-
    ccDrawCubicBezier
    -
  • cocos2d-
    时间表:
    示例代码-
编辑:添加图像

d=d值,根据以下公式计算:


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

你的英语近乎完美。但是,您的代码不需要反引号。只需将其缩进至少四个空格(或一个制表符)。谢谢:)但您有答复吗?:)您可以通过应用核心动画使其成为矩形。核心动画在cocos2d中工作??因为我忘了提到我在cocos2dI上,我在搜索如何计算圆移动的bezier,谷歌在这里点,所以如果你在这种情况下,请看我的答案是的,但我不知道这种类型的动画的代码,这就是为什么我问是的,但我正在搜索在控制点之间进行动画运动的代码:)我不知道它是什么:/@gregrock我们不是来为你做工作的。编程不仅仅是复制和粘贴代码块,它还涉及到很多问题的解决。是的,但如果我不知道允许我制作动画的代码,我可以开始编程,其余的我都有了,我只需要这最后的代码。好了,去把密码编出来。如果您花时间学习cocos2d如何组合和工作,而不仅仅是复制和粘贴代码片段,那么您将了解如何做到这一点。我建议你去阅读更多关于cocos2d的文章,停下来想想你想要实现什么。把问题分解成小任务。我并不是说这很糟糕——你需要学习你在做什么才能做更多的事情。这将使你受益,并使你的知识和能力得到增长。哇,像这样理解有点难;)您是否有此代码,以便我能更好地理解:)对不起,我没有任何预先编写的代码。哪一部分让人困惑?“我会使用4条三次贝塞尔曲线-每个圆的四分之一个曲线”。还有“唱出时间表:cocos2d提供的功能,我会随着时间的推移逐渐移动每条曲线的控制点”怎么办?停止动画?我在原始答案中提供了一个链接,指向如何使用
schedule:
的示例。