#include "myWin.h" float mu=-1, a=0.008F, b=0.05F,dm= 0.0005F; void procCreate(HWND hw, WPARAM wp, LPARAM lp){ SetTimer(hw, 1, 10, NULL); } void procTimer(HWND hw, WPARAM wp, LPARAM lp){ mu=mu+dm;if(mu>1.0)mu=-1; InvalidateRect(hw, NULL, TRUE); } void procPaint(HWND hw, WPARAM wp, LPARAM lp){ PAINTSTRUCT ps; HDC hdc=BeginPaint(hw, &ps); float X=0.1F,Y=0.0F, G; G = mu * X + 2.F * (1.F - mu) * X * X / (1.F + X * X); for(int i=0;i<10000;i++){ int XP = (int)(500.F - X * 10.F), YP=(int)(200.F - Y * 10.F); float XN = X; SetPixel(hdc,XP,YP,0x007700); X = Y + a * (1 - b * Y * Y) * Y + G; G = mu * X + 2.F * (1.F - mu) * X * X / (1.F + X * X); Y = -XN + G; } } LRESULT CALLBACK WndProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp){ switch(msg){ case WM_DESTROY : PostQuitMessage(0) ; return 0; case WM_CREATE : procCreate(hw, wp, lp); return 0; case WM_TIMER : procTimer (hw, wp, lp); return 0; case WM_PAINT : procPaint (hw, wp, lp); return 0; } return DefWindowProc(hw, msg, wp, lp); }