Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
ВнизMoveTo, Pen.Color и LineTo слишком медленные, надо быстрее Найти похожие ветки
← →
D_V_I (2002-11-28 13:15) [0]Пожалуйста помогите!! У меня очень большой цикл вывода на Image.Canvas лайнов и мовов, и каждый раз меняется Pen.Color - это занимает дикое количество времени(7 секунд, а то и 20), может можно как-то через память(поточечно, побыстрее)? Подскажите как? Заранее благодарен.
← →
Starkom (2002-11-28 13:18) [1]может прямо Canvas.Pixels[x,y].color:=нужный. Хотя, по идее, это еще медленее работать должно. Я как-то таким образом треугольник заливал в 1-х дельфях, работало жутко медленно.
← →
Игорь Шевченко (2002-11-28 13:39) [2]Можно а) через Bitmap в памяти и последующим BitBlt
б) через DC Pen
← →
D_V_I (2002-11-28 13:41) [3]Будте добры, поисните работу с BitBlt
← →
Слесарь Матерящийся (2002-11-28 13:43) [4]>Pen.Color
А что мешает готовить пёрышки и кисти заранее?
← →
d_v_i (2002-11-28 13:51) [5]на каждом шаге цикла надо менять Pen.Color - дико медленно
← →
HanIP (2002-11-28 13:52) [6]рисуй через WinApi очень быстро получается
← →
Игорь Шевченко (2002-11-28 13:52) [7]Пример в controls.pas
procedure TWinControl.WMPaint(var Message: TWMPaint);
← →
Бурундук (2002-11-28 14:33) [8]Сначала всё-таки последуй совету тов. Слесаря Матерящегося (28.11.02 13:43)
и создай все нужные перья заранее.
(Pen.Assign работает гораздо быстрее, чем изменение св-в пера):
const
penRed = 0;
...
for i := 0 to
PreviouslyCreatedPens[i] := TPen.Create;
PreviouslyCreatedPens[penRed].Color := clRed;
...
А при рисовании не Pen.Color := clRed, а
Pen.Assign(PreviouslyCreatedPens[penRed]);
Может оказаться, что этого будет вполне достаточно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.015 c