Немного логики про размещение item'ов в GraphicsModel.. |
Здравствуйте, гость ( Вход | Регистрация )
Немного логики про размещение item'ов в GraphicsModel.. |
Andrewshkovskii |
1.12.2009, 14:15
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Допустим, есть графический модель, её максимальный размер всегда известен (maxSize).
Есть графические айтемы в виде текста, из количество всегда разное (от 2 до 19) , высота шрифта текста известна ( fn.height() ), расположены они вертикально, текст ориентирован горизонтально, все айтемы отображаются от левой границы модели ,сверху вниз т.е построчно. Теперь вопрос : Как найти максимальный вертикальный отступ (строки от другой строки, не заходя за границы модели ) айтемов друг от друга, что бы заполнить все не используемое вертикальное пространство модели, если учесть, что количество айтемов всегда будет изменяться ? |
|
|
BRE |
1.12.2009, 14:21
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Если я правильно понял задачу....
itemsSpace.height // = Вычислить высоту всех итемов на сцене. freeSpace.height = maxSize.height - itemsSpace.height; // Свободное место separator.height = freeSpace.height / (numItem - 1); // Размер пространства между итемами Сообщение отредактировал BRE - 1.12.2009, 14:22 |
|
|
Andrewshkovskii |
1.12.2009, 15:05
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Хм..не вышло, при увеличении количества айтемов они все больше и больше начинают сжиматься, пока вконец друг на друга не налезут..
|
|
|
BRE |
1.12.2009, 15:36
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Хм..не вышло, при увеличении количества айтемов они все больше и больше начинают сжиматься, пока вконец друг на друга не налезут.. Подожди, размер итема фиксирован и сумма размеров итемов всегда меньше maxSize? Или нет? Здесь мы пытаемся рассчитать размер свободного места между итемами, что-бы они заняли все пространство. |
|
|
AD |
1.12.2009, 15:49
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Поправьте, пожалуйста, название темы. "Немного логики...." вместо "Немого логики...."! Извините, что не в тему пост!
|
|
|
Andrewshkovskii |
1.12.2009, 15:53
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Высота фиксирована размерами шрифта, а длина варьируется(но эт не важно).
сумма размеров айтема >=MaxSize. Сейчас покажу скрин.. А логика рисования такая :
Скриншотики |
|
|
BRE |
1.12.2009, 16:06
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Ну пробуй, мы рассчитали размер незаполненного пространства, разделили его на количество элементов - получили размер пространства между элементами (spaceHeight).
Item.y + Item.height + spaceHeight = координата следующего элемент |
|
|
Текстовая версия | Сейчас: 25.4.2024, 16:47 |