PdfRpt.VectorCharts.PieChart.drawSegment C# (CSharp) Method

drawSegment() private method

private drawSegment ( PieChartSegment segment ) : void
segment PieChartSegment
return void
        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();
        }