龙形曲线(Dragon Curve)又叫分形龙,是一种自相似碎形曲线的统称,因形似龙的蜿蜒盘曲而得名。

      一种简单的生成分形龙的方式是:拿着一条细长的纸带,把它朝下的一头拿上来,与上面的一头并到一起。用一句简单的话说,就是将纸带对折。接着,把对折后的纸带再对折,又再对折,重复这样的对折几十次……这就生成了分形龙的图形.

 

      上一节讲的是核心代码如下:

static void FractalDragon(const Vector3& vStart, const Vector3& vEnd, Vector3* pVertices, bool left)
{
    Vector3 vSub = vEnd - vStart;

    pVertices[0] = vStart;
    pVertices[2] = vEnd;

    Yreal alfa = atan2f(vSub.y, vSub.x);
    if (left)
    {
        alfa += YD_REAL_PI/4;
    }
    else
    {
        alfa -= YD_REAL_PI/4;
    }

    Yreal l = D3DXVec3Length(&vSub)/YD_REAL_SQRT_2;
    pVertices[1].x = vStart.x + cosf(alfa)*l;
    pVertices[1].y = vStart.y + sinf(alfa)*l;
    pVertices[1].z = 0.0f;
}

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

 

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

分形之龙形曲线(Dragon Curve)

这是个3D程序,鼠标右键的拖动可以改变视角.

分形之龙形曲线(Dragon Curve)

参考:http://blog.sciencenet.cn/blog-677221-601957.html

软件下载地址:https://files.cnblogs.com/WhyEngine/Fractal.7z

相关文章: