分形图形 --- 龙形曲线

前端之家收集整理的这篇文章主要介绍了分形图形 --- 龙形曲线前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天,看到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;
可以看到,这是一个不断生成新的顶点的过程,每帧会生成原来顶点数减一个顶点。

最终效果图:


猜你在找的Cocos2d-x相关文章