private Digit Scale(Digit digit, Scaling scaling)
        {
            if (scaling.HasNone())
            {
                return(digit);
            }

            List <Line> scaled = new List <Line>();

            bool oddLine = true;

            foreach (Line line in digit.Lines())
            {
                Line scaledLine = line.ScaleHorizontal(repeater, scaling);
                if (oddLine)
                {
                    scaled.Add(scaledLine);
                }
                else
                {
                    scaled.AddRange(repeater.Repeat(scaledLine, scaling));
                }
                oddLine = !oddLine;
            }

            return(digit.Scale(scaled));
        }
示例#2
0
 public virtual Line ScaleHorizontal(IScalingRepeater repeater, Scaling scaling)
 {
     char[] chars = line.ToCharArray();
     return new Line(chars[0] + repeater.Repeat(chars[1], scaling) + chars[2]);
 }