欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

分形之龙形曲线(Dragon Curve)

发布时间:2025/3/14 编程问答 85 豆豆
生活随笔 收集整理的这篇文章主要介绍了 分形之龙形曲线(Dragon Curve) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

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

 

      上一节讲的是分形之列维(levy)曲线,它是将一条线段不停地分形成两条长度相等且相互垂直的线段,而生成的.分形龙的生成方式与列维曲线相似,也是将线段不停地分形成两条长度相等且相互垂直的线段,不同之处是其对折的方向是一个左一个右,而列维曲线则是始终朝着一边对折.其核心代码如下:

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; }

 

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

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

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

转载于:https://www.cnblogs.com/WhyEngine/p/4013245.html

总结

以上是生活随笔为你收集整理的分形之龙形曲线(Dragon Curve)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。