📄 teesurfa.pas
字号:
Procedure Assign(Source:TPersistent); override;
Function Calculate(Const P:Array of TPoint):TPointArray;
published
property Active:Boolean read FActive write SetActive default False;
property Interpolate:Boolean read FInterpolate write SetInterpolate default False;
end;
TContourSeries=class(TCustom3DGridSeries)
private
FAutomaticLevels: Boolean;
FLevels : TContourLevels;
FNumLevels : Integer;
FSmoothing : TSmoothPoints;
FYPosition : Double;
FYPositionLevel : Boolean;
FOnBeforeDrawLevel : TOnBeforeDrawLevelEvent;
FOnGetLevel : TOnGetLevelEvent;
IModifyingLevels : Boolean;
function GetNumLevels: Integer;
function GetZAxis:TChartAxis;
function IsLevelsStored: Boolean;
procedure SetAutomaticLevels(const Value: Boolean);
procedure SetLevels(const Value: TContourLevels);
Procedure SetNumLevels(Value:Integer);
Procedure SetYPosition(Const Value:Double);
Procedure SetYPositionLevel(Value:Boolean);
procedure SetSmoothing(const Value: TSmoothPoints);
protected
class Procedure CreateSubGallery(AddSubChart:TChartSubGalleryProc); override;
procedure AddSampleValues(NumValues:Integer); override;
Procedure DoBeforeDrawChart; override;
procedure DrawAllValues; override;
class Function GetEditorClass:String; override;
Procedure PrepareForGallery(IsEnabled:Boolean); override;
class Procedure SetSubGallery(ASeries:TChartSeries; Index:Integer); override;
public
Constructor Create(AOwner: TComponent); override;
Destructor Destroy; override;
Procedure Assign(Source:TPersistent); override;
{$IFDEF LEVELSEGMENTS}
Function Clicked(x,y:Integer):Integer; override;
{$ENDIF}
Function CountLegendItems:Integer; override;
Procedure CreateAutoLevels; { calc Level values and colors }
Function LegendItemColor(LegendIndex:Integer):TColor; override;
Function LegendString( LegendIndex:Integer;
LegendTextStyle:TLegendTextStyle ):String; override;
Function MaxYValue:Double; override;
Function MinYValue:Double; override;
published
property Active;
property AutomaticLevels:Boolean read FAutomaticLevels write SetAutomaticLevels default True;
property ColorEachPoint default True;
property ColorSource;
property Cursor;
property HorizAxis;
property Marks;
property ParentChart;
property DataSource;
property PercentFormat;
property SeriesColor;
property ShowInLegend;
property Title;
property ValueFormat;
property VertAxis;
property XLabelsSource;
{ events }
property AfterDrawValues;
property BeforeDrawValues;
property OnAfterAdd;
property OnBeforeAdd;
property OnClearValues;
property OnClick;
property OnDblClick;
property OnGetMarkText;
property OnMouseEnter;
property OnMouseLeave;
property EndColor;
property LegendEvery;
property Levels:TContourLevels read FLevels write SetLevels stored IsLevelsStored;
property MidColor;
property NumLevels:Integer read GetNumLevels write SetNumLevels default 10;
property NumXValues;
property NumZValues;
property PaletteMin;
property PaletteStep;
property PaletteSteps;
property PaletteStyle;
property Pen;
property Smoothing:TSmoothPoints read FSmoothing write SetSmoothing;
property StartColor;
property TimesZOrder;
property UseColorRange;
property UsePalette;
property UsePaletteMin;
property XValues;
property YPosition:Double read FYPosition write SetYPosition;
property YPositionLevel:Boolean read FYPositionLevel write SetYPositionLevel default False;
property YValues;
property ZValues;
{ events }
property OnBeforeDrawLevel:TOnBeforeDrawLevelEvent read FOnBeforeDrawLevel
write FOnBeforeDrawLevel;
property OnGetYValue;
property OnGetLevel:TOnGetLevelEvent read FOnGetLevel write FOnGetLevel;
end;
TWaterFallSeries=class(TSurfaceSeries)
protected
class Procedure CreateSubGallery(AddSubChart:TChartSubGalleryProc); override;
Procedure GalleryChanged3D(Is3D:Boolean); override;
class Function GetEditorClass:String; override;
class Procedure SetSubGallery(ASeries:TChartSeries; Index:Integer); override;
public
Constructor Create(AOwner: TComponent); override;
published
property WaterFall default True;
property WaterLines;
end;
TColorGridSeries=class(TCustom3DGridSeries)
private
FBitmap : TBitmap;
FCentered: Boolean;
procedure SetCentered(const Value: Boolean);
procedure SetBitmap(const Value: TBitmap);
protected
class Procedure CreateSubGallery(AddSubChart:TChartSubGalleryProc); override;
procedure DrawAllValues; override;
Procedure DrawMark( ValueIndex:Integer; Const St:String;
APosition:TSeriesMarkPosition); override;
Procedure GalleryChanged3D(Is3D:Boolean); override;
class Function GetEditorClass:String; override;
Procedure PrepareForGallery(IsEnabled:Boolean); override;
class Procedure SetSubGallery(ASeries:TChartSeries; Index:Integer); override;
public
Constructor Create(AOwner:TComponent); override;
Destructor Destroy; override;
Function Clicked(X,Y:Integer):Integer; override; { 5.01 }
Function MinXValue:Double; override;
Function MaxXValue:Double; override;
Function MaxYValue:Double; override;
Function MinYValue:Double; override;
Function MinZValue:Double; override;
Function MaxZValue:Double; override;
property Bitmap:TBitmap read FBitmap write SetBitmap;
published
{ Published declarations }
property Active;
property CenteredPoints:Boolean read FCentered write SetCentered default False;
property ColorSource;
property Cursor;
property HorizAxis;
property Marks;
property ParentChart;
property DataSource;
property PercentFormat;
property SeriesColor;
property ShowInLegend;
property Title;
property ValueFormat;
property VertAxis;
property XLabelsSource;
{ events }
property AfterDrawValues;
property BeforeDrawValues;
property OnAfterAdd;
property OnBeforeAdd;
property OnClearValues;
property OnClick;
property OnDblClick;
property OnGetMarkText;
property OnMouseEnter;
property OnMouseLeave;
property Brush;
property EndColor;
property IrregularGrid;
property MidColor;
property NumXValues;
property NumZValues;
property LegendEvery;
property Pen;
property PaletteMin;
property PaletteStep;
property PaletteSteps;
property PaletteStyle;
property StartColor;
property UseColorRange;
property UsePalette;
property UsePaletteMin;
property TimesZOrder;
property XValues;
property YValues;
property ZValues;
{ events }
property OnGetYValue;
property OnGetColor;
end;
TVector3DSeries=class(TCustom3DPaletteSeries)
private
FArrowHeight : Integer;
FArrowWidth : Integer;
FStartArrow : TChartHiddenPen;
FEndArrow : TChartPen;
FEndXValues : TChartValueList; { <-- Vector end X values }
FEndYValues : TChartValueList; { <-- Vector end Y values }
FEndZValues : TChartValueList;
procedure SetArrowHeight(const Value: Integer);
procedure SetArrowWidth(const Value: Integer);
Procedure SetEndXValues(Value:TChartValueList);
Procedure SetEndYValues(Value:TChartValueList);
Procedure SetEndZValues(Value:TChartValueList);
procedure SetEndArrow(const Value: TChartPen);
procedure SetStartArrow(const Value: TChartHiddenPen);
protected
Procedure AddSampleValues(NumValues:Integer); override;
procedure DrawValue(ValueIndex:Integer); override; { <-- main draw method }
class Function GetEditorClass:String; override;
public
Constructor Create(AOwner: TComponent); override;
Destructor Destroy; override;
Procedure Assign(Source:TPersistent); override;
Function AddVector(Const X0,Y0,Z0,X1,Y1,Z1:Double; Const ALabel:String='';
AColor:TColor=clTeeColor):Integer; overload;
Function IsValidSourceOf(Value:TChartSeries):Boolean; override;
Function MaxXValue:Double; override;
Function MinXValue:Double; override;
Function MaxYValue:Double; override;
Function MinYValue:Double; override;
Function MaxZValue:Double; override;
Function MinZValue:Double; override;
Function NumSampleValues:Integer; override;
published
{ Published declarations }
property Active;
property ColorSource;
property Cursor;
property HorizAxis;
property Marks;
property ParentChart;
property DataSource;
property PercentFormat;
property SeriesColor;
property ShowInLegend;
property Title;
property ValueFormat;
property VertAxis;
property XLabelsSource;
{ events }
property AfterDrawValues;
property BeforeDrawValues;
property OnAfterAdd;
property OnBeforeAdd;
property OnClearValues;
property OnClick;
property OnDblClick;
property OnGetMarkText;
property OnMouseEnter;
property OnMouseLeave;
property Brush;
property EndColor;
property MidColor;
property LegendEvery;
property Pen;
property PaletteMin;
property PaletteStep;
property PaletteSteps;
property PaletteStyle;
property StartColor;
property UseColorRange;
property UsePalette;
property UsePaletteMin;
property TimesZOrder;
property XValues;
property YValues;
property ZValues;
{ events }
property OnGetColor;
property ArrowHeight:Integer read FArrowHeight write SetArrowHeight default 4;
property ArrowWidth:Integer read FArrowWidth write SetArrowWidth default 4;
property EndArrow:TChartPen read FEndArrow write SetEndArrow;
property EndXValues:TChartValueList read FEndXValues write SetEndXValues;
property EndYValues:TChartValueList read FEndYValues write SetEndYValues;
property EndZValues:TChartValueList read FEndZValues write SetEndZValues;
property StartArrow:TChartHiddenPen read FStartArrow write SetStartArrow;
end;
TTowerStyle=(tsCube,tsRectangle,tsCover,tsCylinder,tsArrow,tsCone,tsPyramid);
TTowerSeries=class(TCustom3DGridSeries)
private
FDark3D : Boolean;
FOrigin : Double;
FPercDepth : Integer;
FPercWidth : Integer;
FTowerStyle : TTowerStyle;
FTransparency : TTeeTransparency;
FUseOrigin : Boolean;
IOffW : Double;
IOffD : Double;
Function CalcCell(var AIndex,ATop,ABottom,Z0,Z1:Integer):TRect;
procedure SetDark3D(const Value: Boolean);
Procedure SetOrigin(Const Value:Double);
procedure SetPercDepth(const Value: Integer);
procedure SetPercWidth(const Value: Integer);
procedure SetTransparency(const Value: TTeeTransparency);
Procedure SetUseOrigin(Value:Boolean);
procedure SetTowerStyle(const Value: TTowerStyle);
protected
class Procedure CreateSubGallery(AddSubChart:TChartSubGalleryProc); override;
Procedure DrawMark( ValueIndex:Integer; Const St:String;
APosition:TSeriesMarkPosition); override;
procedure DrawAllValues; override;
class Function GetEditorClass:String; override;
Procedure PrepareForGallery(IsEnabled:Boolean); override;
class Procedure SetSubGallery(ASeries:TChartSeries; Index:Integer); override;
public
Constructor Create(AOwner:TComponent); override;
Function Clicked(X,Y:Integer):Integer; override; { 5.01 }
Function MinXValue:Double; override;
Function MaxXValue:Double; override;
Function MinZValue:Double; override;
Function MaxZValue:Double; override;
published
{ Published declarations }
property Active;
property ColorSource;
property Cursor;
property HorizAxis;
property Marks;
property ParentChart;
property DataSource;
property PercentFormat;
property SeriesColor;
property ShowInLegend;
property Title;
property ValueFormat;
property VertAxis;
property XLabelsSource;
property Dark3D:Boolean read FDark3D write SetDark3D default True;
property PercentDepth:Integer read FPercDepth write SetPercDepth default 100;
property Origin:Double read FOrigin write SetOrigin;
property TowerStyle:TTowerStyle read FTowerStyle write SetTowerStyle default tsCube;
property Transparency:TTeeTransparency read FTransparency write SetTransparency default 0;
property PercentWidth:Integer read FPercWidth write SetPercWidth default 100;
property UseOrigin:Boolean read FUseOrigin write SetUseOrigin default False;
{ events }
property AfterDrawValues;
property BeforeDrawValues;
property OnAfterAdd;
property OnBeforeAdd;
property OnClearValues;
property OnClick;
property OnDblClick;
property OnGetMarkText;
property OnMouseEnter;
property OnMouseLeave;
property Brush;
property EndColor;
property IrregularGrid;
property MidColor;
property NumXValues;
property NumZValues;
property LegendEvery;
property Pen;
property PaletteMin;
property PaletteStep;
property PaletteSteps;
property PaletteStyle;
property StartColor;
property UseColorRange;
property UsePalette;
property UsePaletteMin;
property TimesZOrder;
property XValues;
property YValues;
property ZValues;
{ events }
property OnGetYValue;
property OnGetColor;
end;
implementation
Uses {$IFDEF CLX}
Qt,
{$ELSE}
{$IFDEF D6}
Types,
{$ENDIF}
{$ENDIF}
Math, TeeSpline, TeeProCo, TeeConst;
{ TCustom3DSeries }
Constructor TCustom3DSeries.Create(AOwner: TComponent);
Begin
inherited;
HasZValues:=True;
CalcVisiblePoints:=False;
FZValues:=TChartValueList.Create(Self,'Z'); { <-- dont translate ! }
XValues.Order:=loNone;
FTimesZOrder:=3;
end;
Procedure TCustom3DSeries.SetZValues(Const Value:TChartValueList);
Begin
SetChartValueList(FZValues,Value); { standard method }
End;
Procedure TCustom3DSeries.CalcZOrder;
Begin
inherited;
ParentChart.MaxZOrder:=FTimesZOrder;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -