混沌分形之逻辑斯蒂(Logistic)映射系统
生活随笔
收集整理的這篇文章主要介紹了
混沌分形之逻辑斯蒂(Logistic)映射系统
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ? 前幾天,有個(gè)同事看到我生成的一幅邏輯斯蒂分岔圖像后,問我:“這是咪咪嗎?”我回答:“淫者見淫。”好吧,這里將生成幾種分岔映射圖形,包括邏輯斯蒂映射系統(tǒng),正弦映射系統(tǒng)和曼德勃羅映射系統(tǒng)。實(shí)際上這幾種圖形算不上分形,只不過它與我寫的其他分形對象使用相同的基類,所以也將其列入混沌分形的范疇。
? ? ? 關(guān)于基類FractalEquation的定義及相關(guān)軟件見:混沌與分形
(1)邏輯斯蒂映射系統(tǒng)
// 邏輯斯蒂映射系統(tǒng) class LogisticMap : public FractalEquation { public:LogisticMap(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;m_ParamA = 0.0f;m_ParamB = 4.0f;m_nIterateCount = 100;}void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float R = (float)rand()/RAND_MAX;float k = m_ParamA + (m_ParamB - m_ParamA) * R;outX = R*4.0f;outY = (float)rand()/RAND_MAX;for (int i = 0; i < m_nIterateCount; i++){outY = k*outY*(1-outY);}outY *= 2;outZ = z;}bool IsValidParamA() const {return true;}bool IsValidParamB() const {return true;}private:int m_nIterateCount; };調(diào)節(jié)下參數(shù)后的圖形:
(2)正弦映射系統(tǒng)
// 正弦映射系統(tǒng) class SinMap : public FractalEquation { public:SinMap(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;m_ParamA = -2*PI;m_ParamB = 2*PI;m_nIterateCount = 64;}void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float R = (float)rand()/RAND_MAX;float k = m_ParamA + (m_ParamB - m_ParamA) * R;outX = R*4.0f;outY = (float)rand()/RAND_MAX;for (int i = 0; i < m_nIterateCount; i++){outY = k*sinf(outY);}outY *= 0.5f;outZ = z;}bool IsValidParamA() const {return true;}bool IsValidParamB() const {return true;}private:int m_nIterateCount; };(3)曼德勃羅映射系統(tǒng)
// 曼德勃羅映射系統(tǒng) class MandelbrotMap : public FractalEquation { public:MandelbrotMap(){m_StartX = 0.0f;m_StartY = 0.0f;m_StartZ = 0.0f;m_ParamA = -2.0f;m_ParamB = 0.0f;m_nIterateCount = 64;}void IterateValue(float x, float y, float z, float& outX, float& outY, float& outZ) const{float R = (float)rand()/RAND_MAX;float k = m_ParamA + (m_ParamB - m_ParamA) * R;outX = R*4.0f;outY = (float)rand()/RAND_MAX;for (int i = 0; i < m_nIterateCount; i++){outY = outY*outY + k;}outZ = z;}bool IsValidParamA() const {return true;}bool IsValidParamB() const {return true;}private:int m_nIterateCount; };最后發(fā)下被我同事當(dāng)成MM的邏輯斯蒂分岔圖像:
?之前我還寫過一篇關(guān)于邏輯斯蒂的文章:混沌數(shù)學(xué)之logistic模型
轉(zhuǎn)載于:https://www.cnblogs.com/WhyEngine/p/4069203.html
總結(jié)
以上是生活随笔為你收集整理的混沌分形之逻辑斯蒂(Logistic)映射系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UNIX环境编程学习笔记(25)——信号
- 下一篇: 转:PHP非阻塞模式