Esempio n. 1
0
        public sealed override ITicksInfo <DateTime> GetTicks(Range <DateTime> range, int ticksCount)
        {
            DateTime start  = range.Min;
            DateTime end    = range.Max;
            TimeSpan length = end - start;

            bool         isPositive = length.Ticks > 0;
            DifferenceIn diff       = difference;

            DateTime newStart = isPositive ? RoundDown(start, diff) : SafelyRoundUp(start);
            DateTime newEnd   = isPositive ? SafelyRoundUp(end) : RoundDown(end, diff);

            RoundingInfo bounds = RoundHelper.CreateRoundedRange(GetSpecificValue(newStart, newStart), GetSpecificValue(newStart, newEnd));

            int delta = (int)(bounds.Max - bounds.Min);

            if (delta == 0)
            {
                return new TicksInfo <DateTime> {
                           Ticks = new DateTime[] { newStart }
                }
            }
            ;

            int step = delta / ticksCount;

            if (step == 0)
            {
                step = 1;
            }

            DateTime tick          = GetStart(newStart, (int)bounds.Min, step);
            bool     isMinDateTime = IsMinDate(tick) && step != 1;

            if (isMinDateTime)
            {
                step--;
            }

            List <DateTime> ticks      = new List <DateTime>();
            DateTime        finishTick = AddStep(range.Max, step);

            while (tick < finishTick)
            {
                ticks.Add(tick);
                tick = AddStep(tick, step);
                if (isMinDateTime)
                {
                    isMinDateTime = false;
                    step++;
                }
            }

            TicksInfo <DateTime> res = new TicksInfo <DateTime> {
                Ticks = ticks.ToArray(), Info = diff
            };

            return(res);
        }
Esempio n. 2
0
        /// <summary>
        /// Initializes a new instance of the Test2 class.
        /// </summary>
        public Test2()
        {
            InitializeComponent();

            var range = RoundHelper.CreateRoundedRange(2.1, 3.5);

            double a  = 10.2;
            double b  = 1;
            var    ia = (int)a;
            var    ib = (int)b;

            ia = ia - (ia + ib) % ib;
            var c = a + b / 2;

            var d = c % b;

            a = a - d;
        }
Esempio n. 3
0
 private void AutoAdjustCoordinate()
 {
     if (this.Points.Length != 0)
     {
         this.CalcXYZRange();
         _roundZRange     = RoundHelper.CreateRoundedRange(this.ZRange.Min, this.ZRange.Max);
         _axisGrid.XRange = RoundHelper.CreateRoundedRange(this.XRange.Min, this.XRange.Max);
         _axisGrid.YRange = RoundHelper.CreateRoundedRange(this.YRange.Min, this.YRange.Max);
         if (_roundZRange.Min == _roundZRange.Max)
         {
             _axisGrid.ZRange = new Range <double>(_roundZRange.Max / 2.0, _roundZRange.Max);
         }
         else
         {
             _axisGrid.ZRange = _roundZRange;
         }
     }
 }
Esempio n. 4
0
        private Range <double> CreateRangeOfZAxis()
        {
            double minZ = Data[0, 0].Z, maxZ = Data[0, 0].Z;

            for (int i = 0; i <= Data.GetUpperBound(0); i++)
            {
                for (int j = 0; j <= Data.GetUpperBound(1); j++)
                {
                    if (Data[i, j].Z < minZ)
                    {
                        minZ = Data[i, j].Z;
                    }
                    else
                    if (Data[i, j].Z > maxZ)
                    {
                        maxZ = Data[i, j].Z;
                    }
                }
            }

            return(RoundHelper.CreateRoundedRange(minZ, maxZ));
        }