home *** CD-ROM | disk | FTP | other *** search
- unit usurfhol;
-
- interface
-
- uses
- Wintypes, WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, Buttons, TeEngine, TeeSurfa, ExtCtrls, TeeProcs, Chart,
- TeeComma;
-
- type
- TSurfaceHolesForm = class(TForm)
- Chart1: TChart;
- Series1: TSurfaceSeries;
- BitBtn1: TBitBtn;
- BitBtn2: TBitBtn;
- Button1: TButton;
- CheckBox1: TCheckBox;
- Timer1: TTimer;
- TeeCommander1: TTeeCommander;
- procedure BitBtn1Click(Sender: TObject);
- procedure BitBtn2Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- procedure Timer1Timer(Sender: TObject);
- procedure CheckBox1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- Angle,Delta3D:Integer;
-
- end;
-
- var
- SurfaceHolesForm: TSurfaceHolesForm;
-
- implementation
-
- {$R *.DFM}
-
- procedure TSurfaceHolesForm.BitBtn1Click(Sender: TObject);
- var x,z:Integer;
- tmp:Double;
- begin
- CheckBox1.Enabled:=True;
- Series1.UseColorRange:=True;
- Series1.Clear;
- for x:=1 to 10 do
- for z:=1 to 10 do
- begin
- tmp:=cos(x/10.0)*sin(z/10.0);
- Series1.AddXYZ( x, tmp, z, '', clTeeColor );
- end;
- end;
-
- procedure TSurfaceHolesForm.BitBtn2Click(Sender: TObject);
- var x,z:Integer;
- tmp:Double;
- begin
- CheckBox1.Enabled:=True;
- Series1.UseColorRange:=False; { <-- NOT NECESSARY in TeeChart 3.1 }
- Series1.Clear;
- for x:=1 to 10 do
- for z:=1 to 10 do
- begin
- tmp:=cos(x/10.0)*sin(z/10.0);
- { apply hole at cells (5,5) to (6,6) }
- if ((x=5) or (x=6)) and ((z=5) or (z=6)) then
- Series1.AddXYZ( x, tmp, z, '', clNone )
- else
- Series1.AddXYZ( x, tmp, z, '', clTeeColor );
- end;
- end;
-
- procedure TSurfaceHolesForm.FormCreate(Sender: TObject);
- begin
- Angle:=0;
- Delta3D:=1;
- Series1.NumXValues:=10;
- Series1.NumZValues:=10;
- Chart1.LeftAxis.Increment:=0.1;
- Chart1.BottomAxis.Increment:=1;
- Chart1.BottomAxis.LabelsSeparation:=0;
- end;
-
- procedure TSurfaceHolesForm.Button1Click(Sender: TObject);
- begin
- Close;
- end;
-
- procedure TSurfaceHolesForm.Timer1Timer(Sender: TObject);
- var tmpY,tmpX:Double;
- begin
- Angle:=Angle+5;
- if Angle>359 then Angle:=0;
- With Chart1 do
- begin
- Chart3DPercent:=Chart3DPercent+Delta3D;
- if (Chart3DPercent<5) or (Chart3DPercent>60) then Delta3D:=-Delta3D;
- end;
- With Series1.XValues do
- begin
- tmpX:=Sin(Angle*Pi/180.0);
- Chart1.BottomAxis.SetMinMax(MinValue-tmpX,MaxValue-tmpX);
- end;
- With Series1.YValues do
- begin
- tmpY:=Cos(Angle*Pi/180.0)*((MaxValue-MinValue)/10.0);
- Chart1.LeftAxis.SetMinMax(MinValue-tmpY,MaxValue-tmpY);
- end;
- end;
-
- procedure TSurfaceHolesForm.CheckBox1Click(Sender: TObject);
- begin
- Timer1.Enabled:=CheckBox1.Checked;
- end;
-
- end.
-