![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Люди! Совсем запутался. [D5, Win2k]
tovSuhov © (2001-12-27 16:04:00)Какая нужна последовательность режимов Canvas.Pen.Mode, когда я отрисовываю перемещение линии? Т.е. на старом месте надо восстановить затертое ею изображение и отрисовать ее на новом...
Bar (2001-12-27 20:16:00) [1]IMHO лучшее решение pmNotXor
MBo (2001-12-27 17:18:00) [2]оба раза pmXor-ом рисуй!
avr555 (2001-12-27 16:32:00) [3]А где об этом можно поподробнее почитать?
tovSuhov (2001-12-27 16:32:00) [4]Вот как делаю я:
screen - TBitMap;
void DrawTo(int OldX,int OldY,int X, int Y,TPoint * P,int Count)
{
// Восстанавливаем затертое изображение
screen->Canvas->Brush->Style = bsClear;
screen->Canvas->Pen->Mode = pmXor;
TPoint * buf = new TPoint[Count];
buf[0].x = OldX;
buf[0].y = OldY;
for (int i=1;i<Count;i++)
{
buf[i].x = P[i].x+buf[0].x;
buf[i].y = P[i].y+buf[0].y;
}
screen->Canvas->Polygon(buf,Count-1);
// Рисуем новое
buf[0].x = X;
buf[0].y = Y;
for (int i=1;i<Count;i++)
{
buf[i].x = P[i].x+buf[0].x;
buf[i].y = P[i].y+buf[0].y;
}
screen->Canvas->Pen->Color = clBlack;
screen->Canvas->Pen->Mode = pmCopy;
screen->Canvas->Polygon(buf,Count-1);
screen->Canvas->Brush->Style = bsSolid;
delete [] buf;
};
Но он что-то не восстанавливает затертое...
McSimm (2001-12-27 16:23:00) [5]Проще всего, рисовать, а затем восстанавливать с режимом pmXor