这个例子是参照Processing中的例子写的。程序主要用到了旋转、平移变换操作,写法简洁明了,代码如下:
unit Example.TreeMain;
/**
* Recursive Tree
* by Daniel Shiffman.
* 2013 曹伟民
*
* Renders a simple tree-like structure via recursion.
* The branching angle is calculated as a function of
* the horizontal mouse location. Move the mouse left
* and right to change the angle.
*/
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Notification, FMX.StdCtrls;
type
TTreeForm = class(TForm)
AngleBar: TTrackBar;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
procedure AngleBarChange(Sender: TObject);
private
{ Private declarations }