private void drawSegment(PieChartSegment segment)
{
var x1OnCircle = (float)(_circleCenterX0 + Radius * Math.Cos(_startAngle * Math.PI / 180));
var y1OnCircle = (float)(_circleCenterY0 + Radius * Math.Sin(_startAngle * Math.PI / 180));
_endAngle += segment.Percentage <= 50 ? segment.Angle : 180;
var x2 = (float)(_circleCenterX0 + Radius * Math.Cos(_endAngle * Math.PI / 180));
var y2 = (float)(_circleCenterY0 + Radius * Math.Sin(_endAngle * Math.PI / 180));
//draw the triangle within the circle
_template.SetColorStroke(segment.Color);
_template.SetColorFill(segment.Color);
_template.MoveTo(_circleCenterX0, _circleCenterY0);
_template.LineTo(x1OnCircle, y1OnCircle);
_template.LineTo(x2, y2);
_template.LineTo(_circleCenterX0, _circleCenterY0);
_template.FillStroke();
//draw the arc
_template.Arc(
_circleCenterX0 - Radius,
_circleCenterY0 - Radius,
_circleCenterX0 + Radius,
_circleCenterY0 + Radius,
_startAngle,
segment.Percentage <= 50 ? segment.Angle : 180);
_template.FillStroke();
}