今天,看到Matrix67的分形动画展示,效果超赞,于是,忍不住试试。
Matrix67的分形动画展示:Matrix67
为了省事儿,用cocos2dx和MFC做这个。
首先解释一下,龙形曲线。
龙形曲线的原理是:每次在现存的所有线段之间产生一个新的点,新点和原来的两个点构成了等腰直角三角形。如图。
龙形曲线的核心代码如下:
CCPoint start = s,end = e; CCPoint vec = end - start; pVec[0] = start; pVec[2] = end; if ( IsOuter ) { vec = vec.rotateByAngle( CCPointZero,CC_DEGREES_TO_RADIANS( 45 ) ); } else { vec = vec.rotateByAngle( CCPointZero,CC_DEGREES_TO_RADIANS( 315 ) ); } vec = vec*sin(CC_DEGREES_TO_RADIANS(45)); pVec[1] = pVec[0] + vec;可以看到,这是一个不断生成新的顶点的过程,每帧会生成原来顶点数减一个顶点。
最终效果图: