Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.06.2006, 22:02
mushi_mushi вне форума Посмотреть профиль Отправить личное сообщение для mushi_mushi Найти все сообщения от mushi_mushi
  № 1  
Ответить с цитированием
mushi_mushi

Регистрация: Mar 2006
Сообщений: 21
По умолчанию Программное рисование своей кистью?

Добрый вечер.
Есть кисть произвольной формы (на рисунке во вложении изображенна синим).
Необходимо ее програмно передвинуть, чтобы она оставила после себя след (заштрихован на рисунке).

Как я думаю, след этот, его форму и т.п. надо как-то подсчетать...
Кто-нибудь может подкинуть идею, с какой стороны подойти к этой задаче?..

Если бы я мог найти координаты краевых точек (обведенны зеленым), то тут и думать нечего.
Только понятия не имею, как их искать.

Цель - рисование на маске, с целью проявления картинки под маской...
Только вот кисть - в идеале, это произвольный movie clip, или shape...

Подскажите, какие классы, может быть компоненты, могут как-либо помочь в решении этой задачи, может кто уже видел такое или... как искать эти точки?
Изображения
 

Старый 29.06.2006, 22:19
Ion вне форума Посмотреть профиль Найти все сообщения от Ion
  № 2  
Ответить с цитированием
Ion
Banned
[5 01.09.2006]

Регистрация: Jun 2005
Сообщений: 1,805
Нужно и форму кисти программно описывать

Старый 29.06.2006, 22:28
mushi_mushi вне форума Посмотреть профиль Отправить личное сообщение для mushi_mushi Найти все сообщения от mushi_mushi
  № 3  
Ответить с цитированием
mushi_mushi

Регистрация: Mar 2006
Сообщений: 21
программно - это как? что описать? кривые, контрольные точки? массив-пикселей?.. а самое важное - для чего?
ведь при разных направлениях движения, эти крайние точки будут разными и их надо будет как-то искать...

Старый 29.06.2006, 22:30
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
можно через BitmapData.
нарисовать кисть, загрузить(атачнуть), и потом копировать
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 29.06.2006, 22:34
mushi_mushi вне форума Посмотреть профиль Отправить личное сообщение для mushi_mushi Найти все сообщения от mushi_mushi
  № 5  
Ответить с цитированием
mushi_mushi

Регистрация: Mar 2006
Сообщений: 21
я вот тоже подумал, что это простейший способ).. а если кисть большая и местами прозрачная, не повлияет это на производительность в худшую сторону?

Старый 29.06.2006, 22:34
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 6  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
а ведь морочно форму кисти описать..
Я думаю такой вариант: есть пара алгоритмов (чилсенный и еще один), с помощью которых можно найти самую удаленную от центра курсора точку, которая к тому же находится на прямой, перпендикулярной движению курсора и проходящей, опять же, через центр курсора.
Находишь 2 такие точки - справа и слева от оси движения, еще 2 - для конечной позиции курсора и соединяешь их попарно линиями.
Если линия движения курсора скривляется программно - этот алгоритм можно проинтегрировать..
Но ващет, довольно морочно.

Старый 29.06.2006, 22:36
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 7  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
Цитата:
Сообщение от Nirth
можно через BitmapData.
нарисовать кисть, загрузить(атачнуть), и потом копировать
если кисть с прозрачностью, то жестяк... а так - оч удобно.. жаль что не догадался сам )

Старый 29.06.2006, 22:44
mushi_mushi вне форума Посмотреть профиль Отправить личное сообщение для mushi_mushi Найти все сообщения от mushi_mushi
  № 8  
Ответить с цитированием
mushi_mushi

Регистрация: Mar 2006
Сообщений: 21
Цитата:
Сообщение от MyXus
если кисть с прозрачностью, то жестяк...
С прозрачностью жесть, да?.. Совсем?...
Я вот сам догадался, пока думал, как это сделанно в фотошопе...

А ты можешь сказать, как называются эти алгоритмы нахождения этих точек?.. Или ми сам буду думать.

Старый 29.06.2006, 22:45
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 9  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
разве нельзя копировать с учетом альфы? чуть позже пойду проверять, но вроде бы можно.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 29.06.2006, 22:47
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: 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 ();
};
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 29.06.2006 в 23:05.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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