#include "myWin.h" #include "stdio.h" #include "math.h" static HDC hbuf; static HBITMAP hBM; void clearBitmap(int width, int height){ SelectObject(hbuf,GetStockObject(NULL_PEN)); PatBlt(hbuf,0,0,width,height,WHITENESS); } void initBitmap(HWND hw, int width, int height){ HDC hdc=GetDC(hw); hBM=CreateCompatibleBitmap(hdc,width,height); hbuf=CreateCompatibleDC(hdc);SelectObject(hbuf,hBM); ReleaseDC(hw, hdc); } typedef struct { double r, i; }Complex; Complex complex(double r, double i){Complex R; R.r=r; R.i=i; return R;} Complex complex(double r){Complex R; R.r=r; R.i=0; return R;} Complex add(Complex A, Complex B){return complex(A.r+B.r, A.i+B.i);} Complex add(Complex A, double B){return complex(A.r+B, A.i);} Complex add(double A, Complex B){return complex(A+B.r, B.i);} Complex sub(Complex A, Complex B){return complex(A.r-B.r, A.i-B.i);} Complex sub(Complex A, double B){return complex(A.r-B, A.i);} Complex sub(double A, Complex B){return complex(A-B.r, -B.i);} Complex mlt(Complex A, Complex B){ return complex(A.r * B.r - A.i * B.i, A.r * B.i + A.i * B.r); } Complex mlt(Complex A, double B){return complex(A.r*B, A.i*B);} Complex mlt(double A, Complex B){return complex(A*B.r, A*B.i);} Complex cnj(Complex A){return complex(A.r,-A.i);} Complex pow(Complex A, int N){ Complex R=complex(1,0); for(int i=0; i