private void CalculateAxisUnit() { double dValue = 0; if (__cSetting.AxisScope == EAxisScope.PriceScaleScope) { double[] dScales = __cPriceScale.GetPriceScale(__dAxisMax); dValue = dScales[0] * dScales[1]; } else { EAxisScaleMode cScaleMode = __cSetting.ScaleMode; switch (cScaleMode) { case EAxisScaleMode.ScaleGap: dValue = __cSetting.ScaleValue; break; } } __dScaleUnit = (__dAxisMax - __dAxisMin) / __iScaleCount; if (dValue > 0) { __dScaleUnit = Math.Ceiling(__dScaleUnit / dValue) * dValue; } }
private void CalculateAxisScaleCount() { __iMarginTop = (int)(this.__cAxisRect.Height * __cSetting.MarginTop / 100); __iMarginBottom = (int)(this.__cAxisRect.Height * __cSetting.MarginBottom / 100); int iHeight = this.__cAxisRect.Height - (__iMarginTop + __iMarginBottom); __iScaleCount = iHeight / (this.FontMetrics.Height + SCALE_SPACING_PIXEL); __dUnitHeight = iHeight / (__dAxisMax - __dAxisMin); EAxisScaleMode cScaleMode = __cSetting.ScaleMode; switch (cScaleMode) { case EAxisScaleMode.ScaleCount: int iValue = (int)__cSetting.ScaleValue; __iScaleCount = (__iScaleCount < iValue) ? __iScaleCount : iValue; break; } }