Delphi : ����������� ���������
�� �������� ����� ������ �������� ���������� �������, �� ������� ��������� ��� ����������, �� ��� ����� ����������� �� ���� ������������ � ����������� ��������. ��� �������, ��� ���������� ����� �� ����������� �������� �� ������ -���� ��������������� ��������. �� � ������� ������ ����� �� ������ ����� ������ ��� � ������� ���������� ������, ����������� �� ����� ���������� ������, ��� ��� ���-�� �������� ������ ����� �������� � ���� ���������� ���������, � ������������� �������� ����������� � �����������. �������� ��������� �������� ������������. �����, ��� ��� �������� �������� ��������� �� ��� �� �����, �� ����� ��������� ���� ������ ����. �������� �� ������ �� ��������� ��� ������, ��������� �� ���������, � �������� ��� �� ������������ ����������, � ��� ��������� � ������� ���������� ����� ���������� �� ������. �����, ���� ��� ������ ���������, �� �������� - ��� ����� �������������� ����������� ����������� � �������� ������. ����� ���� ������������ �� ����������� ���������� ������������ � �����. ����������� ���� �������� �� ����� ����� ���� ����� ���������� ������. ������������ ��������� �������� ��, ��� ���� ��������� ����� ����������� � �������� ����� ����������� ����� �����, �������� ������ ���� ������ ����� ������������ �� ������� ��������� �����. ������ �� ������ ����� �������� ��������� �������� ����������� ������ ������, �� ��� ���� �������� ���-������ ����� (����� ���������� ���������� ������� ���������). ���� ��������� � ������ ��������, ���� ���� �� ����� � ���������. ��� �� �������� ��� ����������� ��������� ? ��� �������� � ���������� ����� ������������ �������. Zi+1=Zi2+C ����� Z � C - ����������� �����. ��� �����, ������� �� ���� ������������ ����� ������� �������� (��� ���-�� ����� ����������� ������������ ��������������). ���� ������� ������ � ������������ ������� ������ ������� ����� ��������� � �������� � ���������� ����. xi+1=xi2-yi2+a yi+1=2*xi*yi+b ���������� ��������� ������������ �������� � ����������. ��� ������ ����� (a,b) ���������� ����� ���������� �� ��������������� ��������, ������ x0 � y0 ����������� ������� ����, �.�. ����� � ������� ��������� � �������� ���������. �� ������ ���� ���������� �������� r=sqrt(x2+y2 ). ��������� r ,��� �� ������ ��������, �������� ���������� ����� � ������������ (x,y) �� ������ ��������� ( r=sqrt[ (x-0)2+(y-0)2] ). �������� ����� (a,b) ��������� ������������� ��������� ������������, ���� ��� ������� �� ��������� �� ������ ��������� �� �����-�� ����������� �����. ��� ����������� ����� ���������� �������� �������� �� ������, ���� �������� ����� ���� �� ����������� ����������, � � ����������� �� ��� �������� �������� ����� � ��������������� ����. ������ ����������� ��������� ������������ ����� �������� �� ��������� �� -2 �� 1 �� ��� x � �� -1.5 �� 1.5 �� ��� y. ����� ��������, ��� ��� ��������� ���������� �������� ���������� 100 �������� (�� ������ �� ������ ���� ���������� �����). ���� ����������� ������� ������� ����������� ���������� �������� � ����������� �������������� ����� ��������� ������������, ������ �� ������ �� �������� ���� ��� �������������� �����. � �������� ������������ ����� ����� ����� 2. ����� �� ��������� ������, �� ���������� ������� ���������� (r2) � ��������� ������������ �����, �.�. ���������� (x2+y2) � 4. function MandelBrot(a,b: real): TColor; var x,y,xy: real; x2,y2: real; r:real; k: integer; begin r:=0; x:=0; y:=0; k:=100; while (k>0)and(r<4) do begin x2:=x*x; y2:=y*y; xy:=x*y; x:=x2-y2+a; y:=2*xy+b; r:=x2+y2; dec(k) end; k:=round((k/100)*255); result:=RGB(k,k,k); end; ��������� ����� ���������� ���� ������������� � ������� �������� ����������� ��������� (a+ib), ������� ����� ��������� ��� ���� �����, � ��������� �������� x0 � y0 ��������� ������� ��������� ����������� ����������� �����. ������� ��� ��������� ����� �������� ����. function Julia(x0,y0: real): TColor; var a,b,x,y,x2,y2,xy: real; r:real; speed,k: integer; begin r:=1; a:=-0.55; b:=-0.55; x:=x0; y:=y0; k:=100; while (k>0)and(r<4) do begin x2:=x*x; y2:=y*y; xy:=x*y; x:=x2-y2+a; y:=2*xy+b; r:=x2+y2; dec(k) end; k:=round((k/100)*255); result:=RGB(k,k,k); end; ���� �������� ������� ������� ������������ ������ ���������. procedure TForm1.BitBtn2Click(Sender: TObject); var x_min,y_min,x_max,y_max,hx,hy,x,y: real; i,j,n: integer; color: TColor; begin x_min:=-1.5; x_max:=2; y_min:=-1.5; y_max:=1.5; n:=300; y:=y_min; hx:=(x_max-x_min)/n; hy:=(y_max-y_min)/n; for j:=0 to n do begin x:=x_min; for i:=0 to n do begin if rbM.Checked then color:=MandelBrot(x,y); if rbJ.Checked then color:=Julia(x,y); imPict.Picture.Bitmap.Canvas.Pixels[i,j]:=color; x:=x+hx; end; y:=y+hy; end; end; ��� ������������ ���� ������� ������ ������� ������ �.����������� "������������ ����������� ��������" � "����������� ������".