private void RecalculateDivisions()
{
if(_bAutomaticTimeScale)
{
int iSize = (this.Orientation == enumOrientation.orHorizontal) ? Width : Height;
int iOptimumDivisions;
if(iSize>100)
iOptimumDivisions = iSize/100;
else
iOptimumDivisions = 1;
int iOptimumScale = iSize/iOptimumDivisions;
int iScale=0, iDiff=0, iInterval=0;
int iMinDiff = -1, iMinInterval = 1;
for(int iIndex=0; iIndex<_aryIntervals.Length; iIndex++)
{
iInterval = _aryIntervals[iIndex];
iScale = (DefaultScale(_ScaleMode, _ZoomFactor) * iInterval) / DefaultMajorInterval(_ScaleMode);
iDiff = Math.Abs(iOptimumScale - iScale);
if(iDiff < iMinDiff || iMinDiff == -1)
{
iMinDiff = iDiff;
iMinInterval = iInterval;
}
}
if(iMinInterval > 0) MajorInterval = iMinInterval;
iInterval = (int) _Scale;
}
}