![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2006
Сообщений: 21
|
Добрый вечер.
Есть кисть произвольной формы (на рисунке во вложении изображенна синим). Необходимо ее програмно передвинуть, чтобы она оставила после себя след (заштрихован на рисунке). Как я думаю, след этот, его форму и т.п. надо как-то подсчетать... Кто-нибудь может подкинуть идею, с какой стороны подойти к этой задаче?.. Если бы я мог найти координаты краевых точек (обведенны зеленым), то тут и думать нечего. Только понятия не имею, как их искать. Цель - рисование на маске, с целью проявления картинки под маской... Только вот кисть - в идеале, это произвольный movie clip, или shape... Подскажите, какие классы, может быть компоненты, могут как-либо помочь в решении этой задачи, может кто уже видел такое или... как искать эти точки? |
|
|||||
|
Banned
[5 01.09.2006]
Регистрация: Jun 2005
Сообщений: 1,805
|
Нужно и форму кисти программно описывать
|
|
|||||
|
Регистрация: Mar 2006
Сообщений: 21
|
программно - это как? что описать? кривые, контрольные точки? массив-пикселей?.. а самое важное - для чего?
ведь при разных направлениях движения, эти крайние точки будут разными и их надо будет как-то искать... |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 21
|
я вот тоже подумал, что это простейший способ).. а если кисть большая и местами прозрачная, не повлияет это на производительность в худшую сторону?
|
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
а ведь морочно форму кисти описать..
Я думаю такой вариант: есть пара алгоритмов (чилсенный и еще один), с помощью которых можно найти самую удаленную от центра курсора точку, которая к тому же находится на прямой, перпендикулярной движению курсора и проходящей, опять же, через центр курсора. Находишь 2 такие точки - справа и слева от оси движения, еще 2 - для конечной позиции курсора и соединяешь их попарно линиями. Если линия движения курсора скривляется программно - этот алгоритм можно проинтегрировать.. Но ващет, довольно морочно. |
|
|||||
|
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Цитата:
|
|
|||||
|
Регистрация: Mar 2006
Сообщений: 21
|
Цитата:
Я вот сам догадался, пока думал, как это сделанно в фотошопе... А ты можешь сказать, как называются эти алгоритмы нахождения этих точек?.. Или ми сам буду думать. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
mcBrush - это мувиклип с кистью
import flash.display.BitmapData;
import flash.geom.*;
bmpd = new BitmapData (mcBrush._width, mcBrush._height, true, 0x00000000);
bmpCanvas = new BitmapData (Stage.width, Stage.height, true, 0x00000000);
bmpd.draw (mcBrush);
this.createEmptyMovieClip ("mc", 1);
this.createEmptyMovieClip ("mcCanvas", 0);
mc.attachBitmap (bmpd, 0);
mcCanvas.attachBitmap (bmpCanvas, 0);
mcBrush._visible = false;
Mouse.hide ();
mc.startDrag (true);
mc.onMouseMove = function () {
bmpCanvas.copyPixels (bmpd, new Rectangle (0, 0, 100, 100), new Point (this._x, this._y), bmpd, new Point (0, 0), true);
updateAfterEvent ();
};
Последний раз редактировалось iNils; 29.06.2006 в 23:05. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|