Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
9-22904
UNIVERSAL
2002-12-04 09:11
2003.05.08
3DS MAX 5.0


14-23381
Лана Розанова
2003-03-26 14:39
2003.05.08
СТД


1-23222
Xitrik
2003-04-25 12:59
2003.05.08
Как сделать ресурсный файл, который бы содержал в себе строки.


3-23011
Carmen
2003-04-17 22:48
2003.05.08
Посоветуйте з архивированием


3-23044
Саня
2003-04-17 19:04
2003.05.08
Почему бухнут таблицы по весне?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский