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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Jun 2006
Сообщений: 55
По умолчанию Нужно определить цвет заливки с 30% альфой, чтобы получить определенный результат.

Есть два слоя:
  • цвет нижнего известен (A), задан заранее и не может быть изменен.
  • Цвет верхнего может быть любым (B), но у него должна быть 30% альфа.
В результате на экране должна отобразиться заливка определенного цвета (C). Задача найти такое B чтобы при наложении 30% B на A получить C. Методом научного тыка подобрать цвета не сумел. Если ли какие-то программы или методы для решения такой задачи?

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
BitmapData.getPixel (x,y)
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 06.07.2009, 13:29
Огнеметчик вне форума Посмотреть профиль Отправить личное сообщение для Огнеметчик Найти все сообщения от Огнеметчик
  № 3  
Ответить с цитированием
Огнеметчик

Регистрация: Jun 2006
Сообщений: 55
Цитата:
Сообщение от iNils Посмотреть сообщение
BitmapData.getPixel (x,y)
Хмм... это не то о чем я спрашивал... Метод getPixel возвращает цвет пикселя, а мне его не нужно возвращать, мне его нужно задать. Еще раз объясню. Есть два квадратных мувиклипа, один лежит поверх другого. У нижнего заранее задан цвет (A), верхнему я могу задать любой цвет (B), но у верхнего альфа 30%. Область пересечения этих двух мувиклипов должна иметь цвет C. Как зная A, С и альфу B узнать каким должен быть B?


Старый 06.07.2009, 13:44
Snut вне форума Посмотреть профиль Отправить личное сообщение для Snut Посетить домашнюю страницу Snut Найти все сообщения от Snut
  № 4  
Ответить с цитированием
Snut
 
Аватар для Snut

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 489
Отправить сообщение для Snut с помощью ICQ Отправить сообщение для Snut с помощью MSN Отправить сообщение для Snut с помощью Skype™
BitmapData.getPixel32 (x,y) вернет вам цвет типа 0xFFFFFFFF из него можно попробывать по смещениям убрать цвет А и получите цвет B
__________________
Работаю


Последний раз редактировалось Snut; 06.07.2009 в 13:52.
Старый 07.07.2009, 00:47
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 5  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
по компонентно:
C = 0.3*B + 0.7*A
Из этого уравнения можно получить B. Только учтите, что будет погрешность, из-за того, что флеш приводит компоненты цвета в промежуток [0..255].
__________________
TankiOnline
Я разработчик Alternativa3D

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

Регистрация: Jun 2006
Сообщений: 55
Цитата:
Сообщение от Яски Посмотреть сообщение
по компонентно:
C = 0.3*B + 0.7*A
Из этого уравнения можно получить B. Только учтите, что будет погрешность, из-за того, что флеш приводит компоненты цвета в промежуток [0..255].
Спасибо за совет, попробовал, но столкнулся с тем, что не могу понять как, например, из 0x0000FF вычесть 0x777777? Я должен вычитать числа друг из друга целиком или каждый компонент RGB в отдельности? Если по отдельности, то что будет результатом разности (0x00 - 0x77)? -0x77?

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

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

Старый 07.07.2009, 14:04
Огнеметчик вне форума Посмотреть профиль Отправить личное сообщение для Огнеметчик Найти все сообщения от Огнеметчик
  № 8  
Ответить с цитированием
Огнеметчик

Регистрация: Jun 2006
Сообщений: 55
0.7*A + 0.3*B = C
0.3*B = C - 0.7*A
B = 10*(C - 0.7*A) / 3

Пусть C = 0x0000FF, A = 0xAAAAAA

0xAA * 0.7 = 0x77
0.7*A = 0x777777
(C - 0.7*A) = 0x0000FF - 0x777777 = 0x777788

А вот как теперь 0x777788 умножить на 10 и разделить на 3? Я перевел каждую компоненту цвета в десятичную систему, умножил на 10 и разделил на 3, в результате получил число большее чем 256. После перевода числа обратно в шестнадцатеричную систему, тоже получается трехзначное число...

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Пусть C = 0x0000FF, A = 0xAAAAAA
Ну ну. У вас непрозрачный цвет серый, вы накладываете на него некий 30% прозрачный цвет и получаете чистый синий?! Так не бывает.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 07.07.2009, 14:53
Огнеметчик вне форума Посмотреть профиль Отправить личное сообщение для Огнеметчик Найти все сообщения от Огнеметчик
  № 10  
Ответить с цитированием
Огнеметчик

Регистрация: Jun 2006
Сообщений: 55
Цитата:
Сообщение от iNils Посмотреть сообщение
Ну ну. У вас непрозрачный цвет серый, вы накладываете на него некий 30% прозрачный цвет и получаете чистый синий?! Так не бывает.
Понимаю, но хотелось бы получить максимально близкий к заданному цвет.

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

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

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


 


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


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