Russian Qt Forum

Qt => Вопросы новичков => Тема начата: once_again_abc от Август 31, 2011, 13:34



Название: Оси координат
Отправлено: 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 глянь