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

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

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

Регистрация: Oct 2009
Сообщений: 29
По умолчанию Рисование прозрачной линии.

Здравствуйте.
У меня такая проблема. Делаю векторный графический редактор. По движению курсора мыши нужно рисовать прозрачную линию. Рисование происходит по событию MouseEvent.MOUSE_MOVE между предыдущими и текущими координатами мыши. Собственно проблема в том, что на стыках линий получается так, что предыдущая линия наплывает на новую (линию рисую со скругленными концами, для более плавного вида линии, вот и получается, что на стыках пересекаются полукружья концов) и на стыке образуется более темный участок линии - альфа линий смешивается. Если медленно вести курсором - то линия получается вообще непрозрачная, т.к. концы линий постоянно накладываются, за 3-4 смешения получается непрозрачная линия.
Для пущей понятности прикрепил скриншот:
Название: Безымянный.JPG
Просмотров: 536

Размер: 22.6 Кб

Помогите пожалуйста с решением этой проблемы.

Старый 16.11.2009, 21:43
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 2  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
ну например... рисуйте непрозрачную линию в спрайте, не добавленном в дисплей лист, и используйте метод draw объекта BitmapData для копирования содержимого спрайта в битмапдату..ну и дальше уже выводить на экран и управлять прозрачностью..
__________________
freelance | Раздор

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Линия - НЕ прозрачная
Клип в котором рисуется линии - полупрозрачный.
BlendMode клипа - Layer
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 16.11.2009, 22:19
Spider10k вне форума Посмотреть профиль Отправить личное сообщение для Spider10k Найти все сообщения от Spider10k
  № 4  
Ответить с цитированием
Spider10k

Регистрация: Oct 2009
Сообщений: 29
Цитата:
Сообщение от iNils Посмотреть сообщение
Линия - НЕ прозрачная
Клип в котором рисуется линии - полупрозрачный.
BlendMode клипа - Layer
Попробовал сделать так, как Вы сказали. Эффект накладывания линий все равно остался. Или Ваш совет нужно использовать в сочетании с рекомендациями первого ответа?

Добавлено через 6 минут
Цитата:
Сообщение от derhab Посмотреть сообщение
ну например... рисуйте непрозрачную линию в спрайте, не добавленном в дисплей лист, и используйте метод draw объекта BitmapData для копирования содержимого спрайта в битмапдату..ну и дальше уже выводить на экран и управлять прозрачностью..
Я правильно понял: каждый кусок линии отрисовываем в отдельный спрайт, этот кусок копируем в битмапдату ,а битмапдату копируем в отображаемый спрайт? или лучше сразу битмапдату отображать? но при этом же все равно концы будут накладываться и я никак не смогу проконтролировать смешение альфы концов.
или я что-то не так понял?

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
прозрачность добавляйте не к линии, а к клипу, в котором рисуете
__________________
я могу стать всем, если только захочу

Старый 16.11.2009, 23:12
Spider10k вне форума Посмотреть профиль Отправить личное сообщение для Spider10k Найти все сообщения от Spider10k
  № 6  
Ответить с цитированием
Spider10k

Регистрация: Oct 2009
Сообщений: 29
Цитата:
Сообщение от Felicast Посмотреть сообщение
прозрачность добавляйте не к линии, а к клипу, в котором рисуете
Я же говорю, попробовал так - ничего не изменилось. К тому же при таком подходе нельзя в процессе рисования регулировать насыщенность цвета - если менять постоянно альфу клипа - то все нарисованное меняет прозрачность.

Старый 16.11.2009, 23:53
GFreemen вне форума Посмотреть профиль Отправить личное сообщение для GFreemen Найти все сообщения от GFreemen
  № 7  
Ответить с цитированием
GFreemen
 
Аватар для GFreemen

Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
Цитата:
Сообщение от Spider10k Посмотреть сообщение
Я правильно понял: каждый кусок линии отрисовываем в отдельный спрайт, этот кусок копируем в битмапдату ,а битмапдату копируем в отображаемый спрайт? или лучше сразу битмапдату отображать? но при этом же все равно концы будут накладываться и я никак не смогу проконтролировать смешение альфы концов.
или я что-то не так понял?
Все рисуется в одном спрайте, а у него прозрачность такая как вам нужна...

Старый 16.11.2009, 23:56
Spider10k вне форума Посмотреть профиль Отправить личное сообщение для Spider10k Найти все сообщения от Spider10k
  № 8  
Ответить с цитированием
Spider10k

Регистрация: Oct 2009
Сообщений: 29
Но тогда нельзя в процессе рисования сменить прозрачность отдельной линии, так ведь?

Старый 16.11.2009, 23:58
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 9  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Но тогда можно для новой линии создать новый спрайт, так ведь?
__________________
...вселенская грусть

Старый 17.11.2009, 01:00
GFreemen вне форума Посмотреть профиль Отправить личное сообщение для GFreemen Найти все сообщения от GFreemen
  № 10  
Ответить с цитированием
GFreemen
 
Аватар для GFreemen

Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
я так понимаю, рисование происходит, так скажем, за один присест - пока кнопка мыши нажата. Т.о. для изменения альфы, пользователю надо передвинуть мышь куда-то где эта альфа меняется, затем заново вернуть на поле рисования, нажать кнопку и рисовать. Вот при каждом таком "нажатии кнопки" можно создвать новый спрайт.

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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