+!!void __fastcall TSDIAppForm::ButtonGoClick(TObject *Sender)
+ {
+ double zr,zi,zrN,ziN;
+ double Cr2;
+ double Ci2;
+ int imax;
+ int i,ix,iy,col;
+ Cr1 = StrToFloat(EditX->Text);
+ Ci1 = StrToFloat(EditY->Text);
+ wid = StrToFloat(EditW->Text);
+ Cr2 = Cr1 + wid;
+ Ci2 = Ci1 + wid;
+ imax = StrToFloat(EditM->Text);
+ pixx = Image1->Width;
+ pixy = Image1->Height;
+ dCr=(double)wid/(double)pixx;
+ dCi=(double)wid/(double)pixy;
+ Image1->Canvas->Brush->Color = clBlack;
+ Image1->Canvas->Brush->Style = bsSolid;
+ Image1->Canvas->FillRect(Image1->Canvas->ClipRect);
+ for ( Ci=Ci1,iy=pixy ; Ci<=Ci2 ; Ci+=dCi, iy-- ) {
+ for ( Cr=Cr1, ix=0; Cr<=Cr2; Cr+=dCr, ix++ ) {
+ zr=0.0; zi=0.0;
+ for ( i=0; i<imax; i++ ) {
+ zrN = zr*zr-zi*zi+Cr;
+ ziN = 2.0*zr*zi+Ci;
+ if (zrN*zrN+ziN*ziN>4.0) break;
+ zr=zrN; zi=ziN;
+ }
+ if (i==imax) col = 16;
+ else col = i%16;
+ Image1->Canvas->Pen->Color = (TColor)col_t[col];
+ Image1->Canvas->MoveTo(ix,iy);
+ Image1->Canvas->LineTo(ix+1,iy);
+ }
+ Application->ProcessMessages();
+ }
+ x1=-1;
+ }