+!!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; + }