private double CalculateGridStep(bool isXStep) { double oneLength; if (isXStep) { oneLength = mPointTrans.TranslateDistX(1d); } else { oneLength = mPointTrans.TranslateDistY(1d); } if (oneLength > GridMinStep) { while (oneLength > GridMinStep) { oneLength /= 2d; } return(oneLength * 2d); } else if (oneLength < GridMinStep) { while (oneLength < GridMinStep) { oneLength *= 2d; } return(oneLength); } return(oneLength); }