Страница: 1 |
Страница: 1 |
Вопрос: Зумирование экрана
Добавлено: 08.04.07 12:48
Автор вопроса: -АлександР- | Web-сайт:
Привет всем!
Как сделать зумирование (масштабирование) экрана? (готовых кодов не предлагать!!! :))
Ситуация: есть PictureBox, на нем нарисованы линии, другие примитивы..., которые являются объектами. Так вот: как сделать, чтобы не изменяя кординаты этих объектов, зумировать их?
Какие идеи по этому поводу кто может предложить?
Заранее спасибо!
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
mechanical_man
Вопросов: 17
Ответов: 10
Профиль | | #1
Добавлено: 08.04.07 14:57
От себя посоветую так: увеличить примитивы то можно попробовать рисовать их в памяти, а не непосредственно на PictureBoxе, а при зуммировании изменять размеры создаваемого в памяти изображения. У PictureBoxа свойство
size mode вставить как normal. Должно работать...
А от готовых кодов зря отказался
Номер ответа: 2
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 08.04.07 17:50
Легко!
Для этого надо всего лишь напрячь извилину! И внимательно посмотреть на конструкторы объекта Bitmap. В одном из них в качестве параметра можно указать исходный битмап и размеры будущего изображения. Далее присмотреться в методу Clone того же объекта Bitmap, который позволяет выдернуть участок изображения.. ну и наконец взглянуть и разобраться с классом Matrix, который при грамотном подходе тоже будет совсем не лишним..
Номер ответа: 3
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #3
Добавлено: 08.04.07 20:31
EROS
Да я как-то уже использовал такие вещи, но полагаю, что с конструктором - это не прокатит по одной простой причине (я о ней умолчал): все это будет происходить в событии MouseWheel в зависимости от скрола мыши, изменение масштаба должно быть очень быстрым,фактически до 100 или может быть даже до 1000чи раз в секунду.
Сколько ж раз битмап мне нужно будет создавать. Такогопо-моему не выдержит даже он
mechanical_man
При этом другая проблема: координаты объектов должны оставаться такими же...
EROS
У меня все рисование происходит из Paint, значит нужно всю отрисовку сделать через битмап?
Docal, шустрый, однако
Номер ответа: 4
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #4
Добавлено: 08.04.07 20:32
EROS
Может есть какая-нить ф-я на подобии StretchBlt? Если да, то она должна быть результативнее
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 08.04.07 23:11
Ну раз ты все в Paint делаешь, и скорость может доходить до 1000 изменений в секунду!! (хотя мне кажется это полным бредом.. глаз не в состоянии будет уловить ичменения с такой частотой.. и я ума не приложу где возможны такие условия), то тебе лучше всего будет рыть в сторону Matrix. Правда на скорость я его не тестировал но масштабирует великолепно в любом направлении..
А вообще тут основную роль будет играть размер изображения.. если он не слишком велик то и простого Bitmapa будет достаточно. В любом случае придется проводить тесты на скорость во всех возможных вариантах, раз приложение настолько критично к скорости..
Номер ответа: 6
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #6
Добавлено: 12.04.07 23:26