Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Копирование битмэпа в произвольно-ориентированный прямоугольник (http://www.flasher.ru/forum/showthread.php?t=118490)

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

Цитата:

Сообщение от orcpochta (Сообщение 779659)
...должен скопироваться участок картинки, находящийся ровно под mcStamp..Если mcStamp....повернут...

Вот трудность как раз именно в этом: вырезать из битмапы фигуру, которая не является прямоугольником (неповернутым).
Можно решать такую сложную задачу сложно (через threshold, matrix и т.п.). А можно просто - копировать избыточный неповернутый прямоугольник описывающий нашу фигуру (в данном случае повернутый mcStamp) и скрывать излишества маской (маску на самом деле только и поворачивать, а сам мувик-штамп не поворачивать).

orcpochta 25.11.2008 14:45

Цитата:

Сообщение от chingachgoog (Сообщение 779670)
Вот трудность как раз именно в этом: вырезать из битмапы фигуру, которая не является прямоугольником (неповернутым).
Можно решать такую сложную задачу сложно (через threshold, matrix и т.п.). А можно просто - копировать избыточный неповернутый прямоугольник описывающий нашу фигуру (в данном случае повернутый mcStamp) и скрывать излишества маской (маску на самом деле только и поворачивать, а сам мувик-штамп не поворачивать).

совершенно верно про избыточный прямоугольник и маску, но я отказался сразу от такого варианта по причине того, что это не спортивно, хотелось бы какое-то красивое решение найти..))

chingachgoog 25.11.2008 14:51

Тогда мучайтесь :)
По идее, можно обойтись за один раз draw, если правильные параметры подобрать.

orcpochta 25.11.2008 14:54

Цитата:

Сообщение от chingachgoog (Сообщение 779679)
Тогда мучайтесь :)
По идее, можно обойтись за один раз draw, если правильные параметры подобрать.

мне тоже кажется, что главный трабл в этой задаче, правильно задать матрицу

локалТуГлобал и глобалТуЛокал мне в помощь..)))

Волгоградец 25.11.2008 15:07

Вложений: 1
Вот без матрицы.

orcpochta 25.11.2008 15:17

вы слишком упростили задачу, этот пример ни о чем не говорит..))

Волгоградец 25.11.2008 15:44

Не понял... Разве это не решение?


Часовой пояс GMT +4, время: 17:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.