分形之龙形曲线(Dragon Curve)
生活随笔
收集整理的這篇文章主要介紹了
分形之龙形曲线(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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python时间转换
- 下一篇: Dev 等待提示 WaitDialogF