Форум: "Игры";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизАлгоритм нарезания паззлов из картинки Найти похожие ветки
← →
wl (2004-12-09 16:38) [0]никому не попадалось? что-то поиском разучился пользоваться
← →
dRake (2004-12-09 17:34) [1]Мда....
Берем картинку и нарезаем из нее N кусков -
VAR
Source : TBitmap;
Puzzle : array [1..N, 1..N] of TBitmap;
Инициализируем графику
PROCEDURE InitShit;
VAR
i, j : integer;
BEGIN;
Source := TBitmap.Create;
Source.LoadFromFile("Blablabla.bmp");
for i := 1 to N do
begin;
for j := 1 to N do
begin;
Puzzle[i,j] := TBitmap.Create;
Puzzle[i, j].Width := Round(Source.Width/N);
Puzzle[i, j].Height := Round(Source.Height/N);
end;
end;
END;
Нарезаем кртинку
PROCEDURE DoSomeStuff;
VAR
i, j : integer;
BEGIN;
for i := 1 to N do
begin;
for j := 1 to N do
begin;
Puzzle[i, j].Canvas.CopyRect(
Rect(0, 0, Puzzle[i, j].Width, Puzzle[i, j].Height),
Source.Canvas,
Rect((i - 1)*Puzzle[i, j].Width,
(j - 1)*Puzzle[i, j].Height,
Puzzle[i, j].Width,
Puzzle[i, j].Height));
end;
end;
END;
Все, получаешь двухмерный массив Puzzle c кусками твоей картинки
← →
ninja © (2004-12-09 18:08) [2]дык пазлы вроде не кавадратами нарезаются, а красивыми рюшечками.. тогда нужно будет определить их форму, и в цикле их все посувать в массив (Форм кста несколько будет. Рекомендую посмотреть, как устроены пазлы (в оффлайне)). Копировать части изображения через XOR и AND-маски, ф-ция bitblt.
Вроде, всё.
← →
wl (2004-12-09 21:59) [3]спасибо...
← →
wl (2004-12-09 22:00) [4]спасибо...
← →
Mihey_temporary © (2004-12-09 22:12) [5]
> Берем картинку и нарезаем из нее N кусков -
Так ведь не N, а N^2.
← →
dRake (2004-12-10 13:34) [6]Mihey_temporary © (09.12.04 22:12) [5]
Да N^2 ;)
Хотел поправить да правки нет ;)
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c