В таком случае - это совсем не простая задача. Еще и потому, что:
Понимаешь, в чем дело, да?
"Пустая" часть большого изображения наедет на границу малого изображения раньше, чем эти границы совпадут... Картинка будет искажена. Тут я бы смотрел в сторону чистого WinAPI и регионов (вот регионы-то могут быть любой формы). В крайнем случае - вот это глянь:
http://www.delphisources.ru/pages/faq/base..._any_shape.html, возможно оно тебя натолкнет еще на какую идею. Меня сразу вот так ни на что, кроме "повернуть изображение как надо, запаковать его в регион - в смысле, отрезать все лишние углы - и работать именно с полученным регионом" не хватило. Подумаю еще, может что и придумается. Единственная проблема - я не помню, чтоб была готовая функция проверки, пересекаются ли 2 региона. А хранить для такого региона еще и его границы в каком-либо виде (и потом проверять, а не совпадает ли какая граница одной области с границей другой) - с ума сойдешь это все обрабатывать... Также надо посмотреть в сторону GDI+, там много чего есть для работы с графикой, может и для твоей задачи чего найдется. Про OpenGL пока даже думать не хочется... Хотя...
Откуда задачка-то? Игру какую-то пишешь? Что-то типа Puzzle?