2016-04-29 10 views
0

Ich habe derzeit ein Diagramm auf meiner C# Windows Form Application (in Visual Studio 2013), die nach und nach eine Linie auf sie mit einem Timer zeichnet. Ich habe versucht, die Minimal- und Maximalwerte für die X- und Y-Achsen einzustellen, und obwohl die Y-Achsenwerte korrekt eingestellt sind und wie erwartet im Diagramm erscheinen, wird der X-Achsenbereich nicht korrekt eingestellt und stoppt bei ein bestimmter Punkt (um 17.9). Hier ist der Code für das Diagramm und der Timer, die ich derzeit habe:Chart X-Achsen-Maximalwert nicht korrekt eingestellt

private void btnPlotGraph_Click(object sender, EventArgs e) 
{ 
    chart1.ChartAreas[0].AxisX.Minimum = 0; 
    chart1.ChartAreas[0].AxisX.Maximum = double.Parse(txtTotalHorizontalDistance.Text); 
    chart1.ChartAreas[0].AxisY.Minimum = 0 - double.Parse(txtInitialHeight.Text); 
    chart1.ChartAreas[0].AxisY.Maximum = double.Parse(txtTotalVerticalDistance.Text); 
    timer1.Tick += timer1_Tick; 
    timer1.Start(); 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    string[] xCoordinates = File.ReadAllLines("H:\\Computing Coursework\\Code\\FormPrototype\\testX.txt"); 
    string[] yCoordinates = File.ReadAllLines("H:\\Computing Coursework\\Code\\FormPrototype\\testY.txt"); 

    chart1.Series["Projectile1"].Points.AddXY(xCoordinates[i], yCoordinates[i]); 

    if (i >= xCoordinates.Length - 1) 
    { 
     timer1.Stop(); 
    } 
    else 
    { 
     i++; 
    } 
} 

Auch hier ist ein Screenshot von der Form, wenn es um das Problem zu zeigen, mit dem x-Achse Maximalwert ausgeführt wird (was sein soll 81,08 wie im Textfeld) gezeigt:

enter image description here

+0

Ihre Störung liegt in den x-Werten. Wenn Sie sie als Zeichenfolge hinzufügen, sind ihre Werte __all 0, sodass Sie mit ihnen nichts anfangen können, außer sie in den Standardbeschriftungen anzuzeigen. Keine Formatierung, keine Bereiche .. - Stellen Sie sicher, sie in eine Zahl zu konvertieren !! - Hinweis: Wenn die Strings gültige Zahlen enthalten, werden die y-Werte konvertiert, aber die x-Werte nicht. – TaW

+0

Btw: Wollen Sie die Dateien wirklich noch einmal lesen? Oder ändern sie sich? – TaW

+0

@TaW Der Inhalt der Dateien ändert sich bei jeder Ausführung des Programms, so dass ich sie jedes Mal neu lesen muss. Ich bin nicht sicher, dass es ein Problem mit den Werten ist, die Strings sind, selbst wenn ich die Zeile, die die Textfelder liest, durch einen Integer-Wert ersetze, d. H. 'Chart1.ChartAreas [0] .AxisX.Maximum = 82;' Das Programm funktioniert immer noch nicht korrekt. –

Antwort

0

Ihre Fehler in dem x-Wert ist.

Wenn Sie sie als Zeichenfolgen hinzufügen, sind ihre Werte 0, sodass Sie nichts damit tun können, außer dass sie in den Standardbeschriftungen angezeigt werden. Keine Formatierung, keine Bereiche ..

Stellen Sie sicher, sie in eine Zahl zu konvertieren, vielleicht so:

string[] xStringCoordinates = File.ReadAllLines(yourFileName); 
double[] xCoordinates = xStringCoordinates.Select(x => Convert.ToDouble(x)).ToArray(); 

Hinweis: Wenn die Strings gültige Zahlen die y-Werte enthalten durch das System konvertiert werden aber die x-Werte nicht ..

Verwandte Themen