public void FillChart()
    {
        List <SmartChartData> exData = new List <SmartChartData>();

        for (int i = 0; i < 3; i++)
        {
            SmartChartData chartData = new SmartChartData();
            exData.Add(chartData);
            chartData.dataLineColor = new Color(0, 0, 0, 0);
            chartData.dataFillColor = colorsPalette[paletteIndex][i];
            float          x        = chart.minXValue;
            float          modifier = (chart.maxXValue - chart.minYValue) / 10;
            List <Vector2> tuturu   = new List <Vector2>();
            while (x <= chart.maxXValue)
            {
                tuturu.Add(new Vector2(x, Random.Range(chart.minYValue, chart.maxYValue)));
                x += modifier;
                chartData.data = tuturu.ToArray();
                exData[i]      = chartData;
            }
        }
        chart.chartData = exData.ToArray();
        chart.UpdateChart();
        paletteIndex++;
        if (paletteIndex >= 4)
        {
            paletteIndex = 0;
        }
    }
    public void OnSliderValueChanged(float value)
    {
        if (chart.chartData.Length > 0 && chart.chartData[0].data.Length > 0)
        {
            float minVal = float.PositiveInfinity;
            float maxVal = float.NegativeInfinity;

            for (int i = 0; i < chart.chartData [0].data.Length; i++)
            {
                var val = chart.chartData [0].data [i].x;

                if (val < minVal)
                {
                    minVal = val;
                }

                if (val > maxVal)
                {
                    maxVal = val;
                }
            }

            float chartStart = Mathf.Lerp(minVal, maxVal - chartScale, value);
            chart.minXValue = chartStart;
            chart.maxXValue = chartStart + chartScale;

            chart.UpdateChart();
        }
    }
    private void DisplayDataOnChart(SmartChartData[] chartData)
    {
        chart.fillAreaUnderLine = false;
        //chart.DeleteMarkers(chartData[0].data.Length);
        DeleteMarkers(chartData[0]);
        chart.showMarkers = true;

        chart.SetupValues(true);
        chart.chartData[0].data = chartData[0].data;
        chart.UpdateChart();
    }
Exemple #4
0
    public void UpdateSmartChart()
    {
        if (smartChart == null || !gameObject.activeInHierarchy)
        {
            return;
        }

        SmartChartData[]       datas      = smartChart.chartData;
        List <List <Vector2> > plantDatas = null;

        switch (chartType)
        {
        case ChartType.Biomass:
            plantDatas = biomass_plants;
            break;

        case ChartType.Height:
            plantDatas = height_plants;
            break;

        case ChartType.LeafArea:
            plantDatas = leafArea_plants;
            break;

        default:
            throw new System.Exception("Chart type error!");
        }

        //导入图标数据
        for (int i = 0; i < datas.Length; i++)
        {
            datas[i].data = i >= plantDatas.Count ?
                            new Vector2[0] : plantDatas[i].ToArray();

            if (i < envirMarkers.Count)
            {
                datas[i].envirMarker = envirMarkers[i].ToArray();
            }
        }

        smartChart.chartData = datas;

        if (datas[0].data.Length > 0)
        {
            Vector2 maxPoint = datas[0].data[datas[0].data.Length - 1];
            smartChart.maxXValue = maxPoint.x > 0 ? maxPoint.x : 1;
            smartChart.minXValue = 0;
            smartChart.maxYValue = MaxYValue(datas);
            smartChart.minYValue = 0;
        }

        smartChart.UpdateChart();
    }
    private IEnumerator GenerateSinus()
    {
        yield return(new WaitForSeconds(6));

        List <Vector2> sinus = new List <Vector2>();

        for (float i = -4.71f; i <= 4.71; i += 0.2f)
        {
            sinus.Add(new Vector2(i, Mathf.Sin(i)));
            chart.chartData[0].data = sinus.ToArray();
            chart.UpdateChart();
            yield return(null);
        }
    }
 private void DisplayDataOnChart(SmartChartData[] chartData)
 {
     chart.chartData = chartData;
     chart.UpdateChart();
 }