TDIB.DrawMandelbrot 直接在 DIB 上繪製著名的曼德博集合分形圖像,無需外部資源即可生成無限細節的數學之美。本文提供最簡單的全螢幕繪製範例。

unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DIB, StdCtrls;
type
TForm1 = class(TForm)
DXPaintBox1: TDXPaintBox;
procedure FormCreate(Sender: TObject);
end;
var Form1: TForm1;
implementation {$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
DXPaintBox1.Align := alClient; // 填滿視窗
DXPaintBox1.DIB.SetSize(DXPaintBox1.ClientWidth, DXPaintBox1.ClientHeight, 24);
// DrawMandelbrot(Iterations, Left, Right, Top, Bottom)
DXPaintBox1.DIB.DrawMandelbrot(1, -2, 1.5, -1.5);
end;
end.
DrawMandelbrot(MaxIter: Integer; Left, Right, Top, Bottom: Double)
z = z^2 + c 中的常數 c 產生不同形狀曼德博集合定義為複平面上滿足 z_{n+1} = z_n^2 + c 不發散的點 c 組成的集合。圖像中黑色區域為集合內部,彩色區域為發散速度(疊代次數)的可視化映射。
MaxIter=1 僅作示範,實際觀賞建議 50~200