Это называется проблемой определения местоположения , и это одна из основных тем в вычислительной геометрии. Вы можете использовать множество методов, которые будут намного быстрее, чем подход, о котором вы думаете, но детали зависят от того, чего именно вы хотите достичь.
Например, каждая текстовая строка содержится в ограничительной рамке. Вы просто хотите проверить, нажал ли пользователь где-нибудь в этом поле? Затем просто сохраните минимальные и максимальные координаты каждой отображаемой строки и проверьте точку на каждой ограничительной рамке, чтобы увидеть, содержится ли она в этом диапазоне. Если у вас есть большое количество точек для тестирования, вы можете построить любое количество структур данных, чтобы ускорить это (например, R-деревья ), но для одной точки затраты на создание такой структуры, вероятно, не не стоит.
Если вы заботитесь о том, попадает ли точка в непрозрачную область зачеркнутых символов, проблема несколько сложнее. Одним из решений было бы использование подхода ограничивающего прямоугольника, чтобы сначала исключить большинство возможностей, а затем визуализировать оставшиеся строки по одной за один раз в экранный буфер, каждый раз проверяя, не была ли достигнута заданная точка.