Lote / Empate Circle em WindowsForms Gráfico

votos
0

Existe alguma possibilidade de traçar um círculo em um WindowsForm Chart?

Um método chamada da seguinte forma seria muito bom!

Graph.Series[circle].Circle.Add(centerX, centerY, radius);

W

Publicado 24/10/2019 em 12:00
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Bem, eu me criei um em torno do trabalho. Talvez ele ajuda a alguém

public void DrawCircle(Chart Graph, double centerX, double centerY, double radius, int amountOfEdges)
{
    string name = "circle_" + centerX + centerY + radius + amountOfEdges;

    // Create new data series
    if (Graph.Series.IndexOf(name) == -1)
        Graph.Series.Add(name);

    // preferences of the line
    Graph.Series[name].ChartType = SeriesChartType.Spline;
    Graph.Series[name].Color = Color.FromArgb(0, 0, 0);
    Graph.Series[name].BorderWidth = 1;
    Graph.Series[name].IsVisibleInLegend = false;

    // add line segments (first one also as last one)
    for (int k = 0; k <= amountOfEdges; k++)
    {
        double x = centerX + radius * Math.Cos(k * 2 * Math.PI / amountOfEdges);
        double y = centerY + radius * Math.Sin(k * 2 * Math.PI / amountOfEdges);
        Graph.Series[name].Points.AddXY(x, y);
    }
}

Você pode chamá-lo, por exemplo, via

DrawCircle(Graph, 5, 4, 3, 30);

Cerca de 30 pontos deve ser suficiente para obter um bom círculo em vez de um polígono, mas depende do tamanho do seu gráfico.

Respondeu 24/10/2019 em 13:10
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more