Страница: 1 |
Вопрос: Зумирование экрана | Добавлено: 08.04.07 12:48 |
Автор вопроса: ![]() |
Привет всем!
Как сделать зумирование (масштабирование) экрана? (готовых кодов не предлагать!!! :)) Ситуация: есть PictureBox, на нем нарисованы линии, другие примитивы..., которые являются объектами. Так вот: как сделать, чтобы не изменяя кординаты этих объектов, зумировать их? Какие идеи по этому поводу кто может предложить? Заранее спасибо! |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 17 Ответов: 10 |
Профиль | Цитата | #1 | Добавлено: 08.04.07 14:57 |
От себя посоветую так: увеличить примитивы то можно попробовать рисовать их в памяти, а не непосредственно на PictureBoxе, а при зуммировании изменять размеры создаваемого в памяти изображения. У PictureBoxа свойство
size mode вставить как normal. Должно работать... А от готовых кодов зря отказался ![]() |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #5 | Добавлено: 08.04.07 23:11 |
У меня все рисование происходит из Paint,
Ну раз ты все в Paint делаешь, и скорость может доходить до 1000 изменений в секунду!! (хотя мне кажется это полным бредом.. глаз не в состоянии будет уловить ичменения с такой частотой.. и я ума не приложу где возможны такие условия), то тебе лучше всего будет рыть в сторону Matrix. Правда на скорость я его не тестировал но масштабирует великолепно в любом направлении.. А вообще тут основную роль будет играть размер изображения.. если он не слишком велик то и простого Bitmapa будет достаточно. В любом случае придется проводить тесты на скорость во всех возможных вариантах, раз приложение настолько критично к скорости.. |
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 12.04.07 23:26 |
то тебе лучше всего будет рыть в сторону Matrix да, спасибо, EROS, разобрался. Оно самое то, что нужно!
|
Страница: 1 |
|