Обрезать графику
От: undkit  
Дата: 22.04.07 04:17
Оценка:
Добрый день всем.
Помогите, пожалуйста, ускорить отрисовку.
Есть массив GraphicPath. В цикле обсчитываются массивы точек и добавляются в эти пути. Потом надо вычесть из текущего пути предыдущий и залить. Но проблема в том, что в некоторых случаях габариты этих путей очень большие (десятки тысяч точек) и заливаются долго. Покумекав, загоняю этот путь в Region и обрезаю по краям PictureBox'а, в который вывожу. Но это тоже оказалось медленно, может потому, что обрезаю именно Region, а не Path.


for (int i; i < n; i++)
            {
                Region ri = new Region(path[i]);
                ri.Intersect(new RectangleF(0, 0, maxx, maxy));
                for (int f = 0; f < i; f++)
                    ri.Exclude(path[f]);

                if (!ri.GetBounds(g).IsEmpty)
                {
                    g.FillRegion(MySolidBrush[9 - i], ri);
                }
            }


В настоящий момент времени делаю обрезание в ручную на этапе обсчета массива точек. Но получается все равно не иделально и хотелось бы все таки стандартными средствами.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.