From 0c7f82169db070032aee170fd61c1dd06cf8aff9 Mon Sep 17 00:00:00 2001 From: wp Date: Sat, 23 Mar 2019 18:47:26 +0000 Subject: [PATCH] TAChart: Provide public method TPieSeries.CalcBorderPoint. git-svn-id: trunk@60752 - --- components/tachart/taradialseries.pas | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/tachart/taradialseries.pas b/components/tachart/taradialseries.pas index e2f9306d18..65b768c6c7 100644 --- a/components/tachart/taradialseries.pas +++ b/components/tachart/taradialseries.pas @@ -126,6 +126,7 @@ type public function AddPie(AValue: Double; AText: String; AColor: TColor): Integer; procedure Assign(ASource: TPersistent); override; + function CalcBorderPoint(ASlice: TPieSlice; ARadius, AAngle: Double): TPoint; inline; function CalcInnerRadius: Integer; inline; procedure Draw(ADrawer: IChartDrawer); override; function FindContainingSlice(const APoint: TPoint): Integer; @@ -318,6 +319,12 @@ begin inherited Assign(ASource); end; +function TCustomPieSeries.CalcBorderPoint(ASlice: TPieSlice; + ARadius, AAngle: Double): TPoint; +begin + result := ASlice.FBase + FixAspectRatio(RotatePointX(ARadius, -AAngle)); +end; + function TCustomPieSeries.CalcInnerRadius: Integer; begin Result := Round(0.01 * FRadius * FInnerRadiusPercent); @@ -431,7 +438,7 @@ var end; for i := 0 to n - 1 do begin a := WeightedAverage(Angle1, Angle2, i / (n - 1)); - APoints[j] := ASlice.FBase + FixAspectRatio(RotatePointX(ARadius, -a)); + APoints[j] := CalcBorderpoint(ASlice, ARadius, a); inc(j, dj); end; end;