Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.08;
Скачать: CL | DM;

Вниз

Перемещение рисунка по канве.   Найти похожие ветки 

 
Sour ©   (2003-04-27 15:12) [0]

Как можно реализовать эффект движения некого объекта по канве?
Например, есть какой-то рисунок загруженный в TBitmap. Свойство transperent этого Bitmap установлено в
true. Рисунок имеет сложную форму краев. Необходимо, чтобы этот рисунок двигался (Image1.Canvas.Draw(x, 10, Bitmap). Для этого нужно
стирать его "предыдущее положение", а если края неровные как это сделать? Ведь стирая его, например Canvas.Rectangle(<предыдущее положение>),
стирается и часть фона. Может есть другой метод реализации движения.


 
DVM ©   (2003-04-27 15:16) [1]

1. Запомнить то что под ним и восстановить после стирания.
2. XOR


 
Sour ©   (2003-04-27 15:38) [2]

Это как?
Можно пример для 1-ого и 2-ого?


 
DVM ©   (2003-04-27 16:17) [3]

r:=Rect(0, 0, BitBg.Width, BitBg.Height);
//сохраняем фон
BitBg.canvas.CopyRect(r, canvas, Rect(x, y, x+BitBg.Width, y+BitBg.Height));
BitWork.Canvas.CopyMode:=cmSrcCopy;
//рисуем фон на временном изображении
BitWork.Canvas.CopyRect(r, BitBg.Canvas, r);
BitWork.Canvas.CopyMode:=cmSrcAnd;
//рисуем маску (маска - та же картинка, но с черным цветом везде, где выводимая картинка прозрачна и с белым - где не прозрачна
BitWork.Canvas.CopyRect(r, BitMask.Canvas, r);
BitWork.Canvas.CopyMode:=cmSrcPaint;
BitWork.Canvas.CopyRect(r, Bit.Canvas, r);
oldx:=x;
oldy:=y;
//выводим картинку на канвас
canvas.CopyRect(Rect(oldx, oldy, oldx+BitBg.Width, oldy+BitBg.Height),
BitWork.canvas,
r);
работает максимально быстро и без мерцаний.


 
Sour ©   (2003-04-27 20:25) [4]

Подскажите пожплуйста, что за BitMask, Bit, BitWork и др.
Можно ли объяснить как реализовать движение допустим B: TBitmap по канве Image1.Canvas?
Что куда копировать?

P.S. А если в Image уже загружена картинка, то там уже ничего нельзя нарисовать?



Страницы: 1 вся ветка

Текущий архив: 2003.05.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
3-23033
Андрю-ХА
2003-04-17 17:11
2003.05.08
TStoredProc: Набор данных + Выходные параметры: Как добиться?


1-23119
avkar
2003-04-27 16:57
2003.05.08
MessageDlg на русском


7-23413
Anton Tsvilikh
2003-03-17 15:50
2003.05.08
Закрыть прогу...


14-23359
Esu
2003-04-20 21:05
2003.05.08
Теория и практика...


1-23114
skovorodka
2003-04-27 13:27
2003.05.08
TShiftState ?