我本意是想通过.ScaleView.Size设定范围,根据1000个点算出每个点的横坐标,再通过addxy,1000个点,但实际上如果ScaleView.Size=2000,图形只能绘制到图形中间,如果ScaleView.Size=4000,则只能绘制1/4,怎么实现addxy到1000个刚好是ScaleView.Size值
private void createGraphSeries()
{
TreeNode selNode = tvStation.SelectedNode;
m_stationNo = Convert.ToInt16(selNode.Text.ToString().Substring(2, 1));
string serialName = "";
pointChart.Series.Clear();
for (int i = 0; i < StationHelp.MAX_STATION_COUNTS; i++)
{
serialName = "触点" + (i + 1).ToString() + "(V)";
pointChart.Series.Add(createSeries(serialName, i));
}
//页面显示的
pointChart.ChartAreas[0].AxisX.ScaleView.Size = m_totalPointCounts;
pointChart.ChartAreas[0].AxisX.Interval = pointChart.ChartAreas[0].AxisX.ScaleView.Size / 10;
pointChart.ChartAreas[0].AxisX.Minimum = m_currentStationNum;
pointChart.ChartAreas[0].AxisX.Maximum = m_totalPointCounts;
//pointChart.ChartAreas[0].AxisX.IntervalOffset=
m_drawPerPointCounts = m_totalPointCounts / m_pointCountsPerPage;
}
private void drawGraphLine()
{
if (m_stationReliabilityDt == null)
return;
//图形创建
createGraphSeries();
//pointChart.Series[0].
TreeNode selNode = tvStation.SelectedNode;
m_stationNo = Convert.ToInt16(selNode.Text.ToString().Substring(2, 1));
double xx = 0;
for (int j = 0; j < StationHelp.DATA_COUNTS_PER_STATION; j++)
{
for (int i = 0; i < m_pointCountsPerPage; i++)
{
int curentPointNum = m_drawPerPointCounts * i;
//pointChart.ChartAreas[0].Position =
//触点曲线
xx = curentPointNum;
double yy = Convert.ToDouble(m_stationReliabilityDt.Rows[i][j + 4].ToString());
pointChart.Series[j].Points.AddXY(i, yy);
//System.Diagnostics.Debug.WriteLine("xx=" + xx.ToString());
}
}
System.Diagnostics.Debug.WriteLine("interval=" + pointChart.ChartAreas[0].AxisX.Interval.ToString()
+ "区域范围" + pointChart.ChartAreas[0].AxisX.ScaleView.Size.ToString() + "绘图后的最大值=" + xx.ToString());
}