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

drawWideSegment() private method

private drawWideSegment ( PieChartSegment segment ) : void
segment PieChartSegment
return void
        private void drawWideSegment(PieChartSegment segment)
        {
            if (!(segment.Percentage > 50))
            {
                return;
            }

            var triangleX1OnCircle = (float)(_circleCenterX0 + Radius * Math.Cos((_startAngle + 180) * Math.PI / 180));
            var triangleY1OnCircle = (float)(_circleCenterY0 + Radius * Math.Sin((_startAngle + 180) * Math.PI / 180));

            _endAngle += segment.Angle - 180;
            var triangleX2OnCircle = (float)(_circleCenterX0 + Radius * Math.Cos(_endAngle * Math.PI / 180));
            var triangleY2OnCircle = (float)(_circleCenterY0 + Radius * Math.Sin(_endAngle * Math.PI / 180));

            _template.SetColorStroke(segment.Color);
            _template.SetColorFill(segment.Color);

            //draw the triangle within the circle
            _template.MoveTo(_circleCenterX0, _circleCenterY0);
            _template.LineTo(triangleX1OnCircle, triangleY1OnCircle);
            _template.LineTo(triangleX2OnCircle, triangleY2OnCircle);
            _template.LineTo(_circleCenterX0, _circleCenterY0);
            _template.FillStroke();

            //draw the arc
            _template.Arc(_circleCenterX0 - Radius, _circleCenterY0 - Radius, _circleCenterX0 + Radius, _circleCenterY0 + Radius, _startAngle + 180, segment.Angle - 180);
            _template.FillStroke();
        }