Пример #1
0
        private void Append(StringBuilder builder, QAnalyzedSymbol symbol)
        {
            builder.Append(symbol.Char);

            /*
             * var chr = symbol.Char;
             * if (symbol.State == QState.Ok)
             * {
             *  builder.Append(chr);
             * }
             * else
             * {
             *  builder.Append($"({chr})");
             * }
             */
        }
Пример #2
0
        private static QAnalyzedSymbol GetTopmostSymbol(ICollection <QAnalyzedSymbol> symbols)
        {
            if (!symbols.Any())
            {
                return(null);
            }

            // Ищем самый верхний символ (с наименьшим значением Y)
            QAnalyzedSymbol result = symbols.First();

            foreach (var symbol in symbols)
            {
                var minY = result.StartPoint.Y;
                var curY = symbol.StartPoint.Y;

                if (curY < minY)
                {
                    result = symbol;
                }
            }

            return(result);
        }
Пример #3
0
        private static ICollection <QAnalyzedSymbol> GetLineSymbols(ICollection <QAnalyzedSymbol> symbols, QAnalyzedSymbol oneSymbol)
        {
            int lineVector = oneSymbol.StartPoint.Y + oneSymbol.Height / 2;
            List <QAnalyzedSymbol> result = new List <QAnalyzedSymbol>();

            // Ищем все символы на линии с oneSymbol
            foreach (var symbol in symbols)
            {
                var symbolY1 = symbol.StartPoint.Y;
                var symbolY2 = symbol.StartPoint.Y + symbol.Height;
                if (symbolY1 < lineVector && lineVector < symbolY2)
                {
                    result.Add(symbol);
                }
            }

            return(result);
        }