Название: Оси координат Отправлено: once_again_abc от Август 31, 2011, 13:34 Как грамотно отобразить заданный диапазон значений на оси координат?
Как найти максимально возможное число отображаемых (не перекрывающихся, учитывающих размеры текущего шрифта и т.д.) текстовых значений для данного конкретного диапазона? Название: Re: Оси координат Отправлено: Странник от Август 31, 2011, 14:26 почитайте про QFontMetrics.
Название: Re: Оси координат Отправлено: once_again_abc от Август 31, 2011, 14:43 почитайте про QFontMetrics. Ладно, зайдем с другой стороны =))) Известны метрики текущего шрифта, известна область отображения. Задача: "максимально возможное число отображаемых (не перекрывающихся, учитывающих размеры текущего шрифта и т.д.) текстовых значений для данного конкретного диапазона". Как это грамотно сделать автономно на основе данных о шрифте, окне вывода и заданного диапазона? Ну, пусть для большей простоты указана максимальная точность (это даст максимальный bounding rect для числа). Название: Re: Оси координат Отправлено: Igors от Август 31, 2011, 17:33 Известны метрики текущего шрифта, известна область отображения. Задача: "максимально возможное число отображаемых (не перекрывающихся, учитывающих размеры текущего шрифта и т.д.) текстовых значений для данного конкретного диапазона". То что Вы рассказали довольно просто реализовать, но получается что немного счастья от разбросанных абы-каких значений, напр (0, 1.83, 3.66 и.т.д). Если числа слишком малы (или велики) - придется отображать коэффициент "порядок", писать 0.0025 нет смысла. Также "неперекрывающихся" не очень хорошо, какие-то зазоры между значениями необходимы.Сначала "выбираем шкалу". Напр диапазон значений [32..40]. Округляем 40 - 32 = 8 в большую сторону, имеем 10. Максимальный текст (пока) "10.0", шаг единица. Считаем сколько влазит в область отображения. Напр не все 8, а меньше. Тогда пробуем (30.0, 32.5, 35.0. 37.5, 40.0). Опять не лезет - пробуем еще меньше значений. Ну и в большую сторону аналогично Название: Re: Оси координат Отправлено: alexman от Сентябрь 01, 2011, 09:59 в qwt глянь
|