Просмотр полной версии : Копирование битмэпа в произвольно-ориентированный прямоугольник
orcpochta
25.11.2008, 14:24
Опять у меня траблы с пониманием методов класса BitmapData().
Есть прямоугольник mcStamp, для краткости будем считать, что он повернут на 30 градусов и он залип на мышке. На сцене есть мувиклип mcPict с какой-то картинкой. Если щелкнуть мышкой в то время, как mcStamp над mcPict, то должен скопироваться участок картинки, находящийся ровно под mcStamp, из mcPict в mcStamp.
Если mcStamp не повернут на какой-то угол, то все просто, а вот если повернут, то у меня начинаются трудности - никак не могу сообразить что мне делать.
Волгоградец
25.11.2008, 14:31
В чем заключаются трудности? Если рисуешь картинку методом draw(), то в нем второй параметр - [matrix:Matrix] - его нужно использовать если хочешь скопировать картинку с поворотом, смещением, масштабом...
Есть способ проще - тот клип, который тебе надо "срисовать", положить в другой клип и уже его рисовать в битмапу - тогда все изменения этого клипа (первого, который нужно скопировать) сохранятся и не нужно создавать матрицу.
orcpochta
25.11.2008, 14:34
я так и пытаюсь через матрикс это сделать, но не могу получить нужного эффекта
chingachgoog
25.11.2008, 14:41
...должен скопироваться участок картинки, находящийся ровно под mcStamp..Если mcStamp....повернут...
Вот трудность как раз именно в этом: вырезать из битмапы фигуру, которая не является прямоугольником (неповернутым).
Можно решать такую сложную задачу сложно (через threshold, matrix и т.п.). А можно просто - копировать избыточный неповернутый прямоугольник описывающий нашу фигуру (в данном случае повернутый mcStamp) и скрывать излишества маской (маску на самом деле только и поворачивать, а сам мувик-штамп не поворачивать).
orcpochta
25.11.2008, 14:45
Вот трудность как раз именно в этом: вырезать из битмапы фигуру, которая не является прямоугольником (неповернутым).
Можно решать такую сложную задачу сложно (через threshold, matrix и т.п.). А можно просто - копировать избыточный неповернутый прямоугольник описывающий нашу фигуру (в данном случае повернутый mcStamp) и скрывать излишества маской (маску на самом деле только и поворачивать, а сам мувик-штамп не поворачивать).
совершенно верно про избыточный прямоугольник и маску, но я отказался сразу от такого варианта по причине того, что это не спортивно, хотелось бы какое-то красивое решение найти..))
chingachgoog
25.11.2008, 14:51
Тогда мучайтесь :)
По идее, можно обойтись за один раз draw, если правильные параметры подобрать.
orcpochta
25.11.2008, 14:54
Тогда мучайтесь :)
По идее, можно обойтись за один раз draw, если правильные параметры подобрать.
мне тоже кажется, что главный трабл в этой задаче, правильно задать матрицу
локалТуГлобал и глобалТуЛокал мне в помощь..)))
Волгоградец
25.11.2008, 15:07
Вот без матрицы.
orcpochta
25.11.2008, 15:17
вы слишком упростили задачу, этот пример ни о чем не говорит..))
Волгоградец
25.11.2008, 15:44
Не понял... Разве это не решение?
orcpochta
25.11.2008, 16:01
Не понял... Разве это не решение?
скорей всего решение, но не того, чего надо..))
Всем спасибо, я справился..)))
UPD: Придется все-таки брать избыточные прямоугольники и использовать маску, посколько если заниматься поворотами матрицы, то качество копируемого участка битмэпа ощутимо теряется.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.