Добрый день!
Есть такая задача: надо написать прогу, которая работает с картой города(масштабирование и навигация).
Пытаюсь решить задачу с помошью .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 — прямоугольник, параметры которого пересчитываются, в зависимости от зума и видимой части карты.
Собственно проблема: если загружать относительно сложные метафайлы, то начинаются нереальные тормоза.
Мне кажется, у меня неправильный подход в хранении изображения и вывода его видимой части. Потому что все программы работы с картами, которые я просмотрел, практически не тормозят даже при большом количестве объектов.
Буду очень признателен всем, откликнувшимся, т.к. все дальнейшие попытки ускорить процесс рисования приводили у меня к ещё бОльшим тормозам...