Unity3d Graph Maker探索二

日期时间显示

在WMG_Axis_Graph脚本添加属性  public bool Is_X_AXiesUseYear { get; set; } 第一篇已经有介绍了,用来控制是否启用年月

然后添加方法

  /// <summary>
    /// 时间转换
    /// </summary>
    /// <param name="Time"></param>
    public  void Time_long(WMG_List<Vector2> Time, WMG_Series series)
    {
      
        for (int i = 0; i < Time.Count; i++)
        {
            //Y轴最大值
            if(yAxis.AxisMaxValue< Time[i].y)
            {
                float t = Time[i].y % (yAxis.AxisNumTicks-1);
                 int p=  (int)Time[i].y / (yAxis.AxisNumTicks-1);
                if (t>0)
                {
                    yAxis.AxisMaxValue= p* yAxis.AxisNumTicks;
                }
                else
                    yAxis.AxisMaxValue = p * (yAxis.AxisNumTicks-1);
            }
            //DateTimeStringToLongDateTime()
        }
        WMG_List<Vector2> Gettimes = rettime( Time);
        int Ticknum = xAxis.AxisNumTicks;
        xAxis.LabelType = WMG_Axis.labelTypes.ticks;
        //if (Gettimes.Count < Ticknum)
        //{
        //    Ticknum= SetXaisLable(Gettimes.Count);
        //}
        ///X轴的最大值最小值
        if (xAxis.AxisMaxValue <= Gettimes[Gettimes.Count - 1].x)
            xAxis.AxisMaxValue = Gettimes[Gettimes.Count - 1].x;
        if(lineSeries.Count>1)
        {
            if (xAxis.AxisMinValue >= Gettimes[0].x)
                xAxis.AxisMinValue = Gettimes[0].x;
        }
        else
        {
            xAxis.AxisMinValue = Gettimes[0].x;
        }
        xAxis.axisLabels.Clear();
        float c = (xAxis.AxisMaxValue - xAxis.AxisMinValue) / (Ticknum-1);
        for(int i=0;i< Ticknum;i++)
        {
            xAxis.axisLabels.Add(WMG_Graph_Tooltip.LongDateTimeToDateTimeString((xAxis.AxisMinValue +( i* c))/10000));
        }
        yAxis.SetLabelsUsingMaxMin = true;
        xAxis.SetLabelsUsingMaxMin = false;
      
        series.pointValues = Time;

    }
    private int SetXaisLable(int Gettimescount)
    {
        if (xAxis.LabelType==WMG_Axis.labelTypes.ticks)
        {
            xAxis.AxisNumTicks = Gettimescount;
        }
        else if (xAxis.LabelType == WMG_Axis.labelTypes.ticks_center)
        {
            xAxis.AxisNumTicks = -Gettimescount;
        }
       
        return xAxis.AxisNumTicks;
    }
    /// <summary>
    ///从大到小排列
    /// </summary>
    /// <typeparam name="T1"></typeparam>
    /// <param name="time"></param>
    /// <returns></returns>
    private static WMG_List<Vector2> rettime(WMG_List<Vector2> Time)
    {
        QuickSort(ref Time, 0, Time.Count-1);
        return Time;
    }
    static void QuickSort(ref WMG_List<Vector2> nums, int left, int right)
    {
        if (left < right)
        {
            int i = left;
            int j = right;
            float middle = nums[(left + right) / 2].x;
            while (true)
            {
                while (i < right && nums[i].x < middle) { i++; };
                while (j > 0 && nums[j].x > middle) { j--; };
                if (i == j) break;
                Vector2 temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
                if (nums[i] == nums[j]) j--;
            }
            QuickSort(ref nums, left, i);
            QuickSort(ref nums, i + 1, right);
        }
    }

测试

 public WMG_Axis_Graph _Graph;
    // Use this for initialization
    void Start () {
       WMG_Series wMG_=    _Graph.addSeries();
        wMG_.seriesName = "小青";
        wMG_.pointColor = new Color(0, 1, 0);
        wMG_.lineColor = new Color(1, 0, 1);
        WMG_List<Vector2> _Axis = new WMG_List<Vector2>();
        _Axis.Add(GetVector("2017-8-20", 30));
        _Axis.Add(GetVector("2017-9-20", 10));
        _Axis.Add(GetVector("2017-8-9", 20));
        _Axis.Add(GetVector("2017-10-20", 40));
        _Axis.Add(GetVector("2017-11-20", 40));
       _Graph.Time_long(_Axis, wMG_);
    }
	private Vector2 GetVector(string time,float YAxiscount)
    {
        double timess;
        if(WMG_Graph_Tooltip.DateTimeStringToLongDateTime(time,out timess))
        {
            return new Vector2((float)timess*10000, YAxiscount);
        }
        return default(Vector2);
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值