PavelK
@PavelK

Каким способом реализовать на канвасе «зум» например от года к конкретному дню недели?

И снова здравствуйте!
Делаю что-то типо тайм-лайна / календарной сетки
vyJhphfl.jpg
тут в столбцы - дни для каждого месяца
в этих днях должна быть разбивка по часам и минутам.

Нужно сделать "зум" т.е. что бы столбцы становились больше и в них можно было увидеть часы, потом в часах минуты.

До этого у меня было сделано просто полной перерисовкой канваса на текущий день с отображением разбивки времени без соседних дней.

Заказчик теперь так вообще не хочет, а хочет что бы был "зум"
17zS_Q4Z8dc.jpg
что бы без переключения сразу на поминутное мог видеть часы, когда минуты не важны, а когда важны, ещё отзумировать и прямо в таком зуме пролистать на другие дни.

Как к этому правильно и с какой стороны подойти?
  • Вопрос задан
  • 699 просмотров
Пригласить эксперта
Ответы на вопрос 3
riky
@riky
Laravel
помоему для такого лучше svg
посмотри d3js - фреймворк довольно сложный но у них миллион примеров и готовых заготовок + доки, еще и с красивой анимацией сможешь сделать.
Ответ написан
Nipheris
@Nipheris Куратор тега C++
А чего тут думать. Ну введите некое условное обозначение зума, например 1 - это минимальное увеличение, как сейчас. Также введите точку - центр viewport-а, куда смотрит пользователь. В зависимости от значения масштаба, отрисовывать дни/часы или минуты. Отрисовывать только то, что видно через вьюпорт. Таким образом у вас получится длинный-предлинный календарь, в каждый момент времени вы будете видеть лишь его фрагмент. Ну как тайловых картах сделано.
Ответ написан
Комментировать
trushka
@trushka
Может, вообще на обычном html сделать, по принципу из предыдущего ответа? Чтоб не утяжелять, при недостаточном зуме скрывать более мелкие элементы с помощью display:none, а показывать только в пределах вьюпорта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы