Добрый день!
Есть такая задача: надо написать прогу, которая работает с картой города(масштабирование и навигация).
Пытаюсь решить задачу с помошью .NET, GDI+ и C#. Карта загружается на данном этапе из метафайла, который получен из CorelTrace.
если опустить все моменты, то при инициализации происходит:
SetStyle(ControlStyles.DoubleBuffer, true);
Image metafile = new Metafile(@"<путь>");
и далее переопределяю OnPaint(...)
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawImage(metafile, ClientRectangle, clipRectangle, GraphicsUnit.Pixel);
}
Здесь clipRectangle — прямоугольник, параметры которого пересчитываются, в зависимости от зума и видимой части карты.
Собственно проблема: если загружать относительно сложные метафайлы, то начинаются нереальные тормоза.
Мне кажется, у меня неправильный подход в хранении изображения и вывода его видимой части. Потому что все программы работы с картами, которые я просмотрел, практически не тормозят даже при большом количестве объектов.
Буду очень признателен всем, откликнувшимся, т.к. все дальнейшие попытки ускорить процесс рисования приводили у меня к ещё бОльшим тормозам...
Re: тормоза с графикой
От:
Аноним
Дата:
20.03.06 14:23
Оценка:
Здравствуйте, kernel_panic, Вы писали:
_>Добрый день! _>Есть такая задача: надо написать прогу, которая работает с картой города(масштабирование и навигация). _>Пытаюсь решить задачу с помошью .NET, GDI+ и C#. Карта загружается на данном этапе из метафайла, который получен из CorelTrace.
а если CorelTrace-у скормить карту квадратиками (достаточно небольшого размера), а дальше проигрывать тот матафайл, в котором находится требуемый район?