программа просмотра векторной карты

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Cyr
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 10.02.2013 (Вс) 13:40
Откуда: Пенза

Re: программа просмотра векторной карты

Сообщение Cyr » 18.02.2013 (Пн) 9:26

Код: Выделить всё
Масштаб = (Me.Size.Width) / 2650
e.Graphics.ScaleTransform(Масштаб, Масштаб)
СдвигX=0
СдвигY=0
e.Graphics.TranslateTransform(СдвигX, СдвигY)

где 2650 - максимальная ширина рисунка.
Подскажите, по каким формулам пересчитывать координаты для СдвигX, СдвигY
Нужно при нажатии кнопки мыши в текущих координатах курсора (e.X, e.Y) получить увеличенную область изображения с масштабом=1.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 18.02.2013 (Пн) 10:44

Подозрения вызывает необходимость подобной работы с растровой картинкой, когда есть векторные данные...

Cyr
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 10.02.2013 (Вс) 13:40
Откуда: Пенза

Re: программа просмотра векторной карты

Сообщение Cyr » 18.02.2013 (Пн) 13:26

Qwertiy. Это не растровая картинка.
Это перерисовка векторной карты в Form1_Paint.
При клике мыши в Form1_MouseUp меняем циклически параметр масштаб=1 или масштаб=Me.Size.Width / 2650
и делаем Me.Refresh(). Но нужно вычислить СдвигX, СдвигY при масштаб=1.

Cyr
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 10.02.2013 (Вс) 13:40
Откуда: Пенза

Re: программа просмотра векторной карты

Сообщение Cyr » 18.02.2013 (Пн) 15:04

нашёл я сам формулу:
Код: Выделить всё
СдвигX = e.X - e.X / Масштаб
СдвигY = e.Y - e.Y / Масштаб

Пред.

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList