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})"); * } */ }
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); }
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); }