Просмотр полной версии : Круговой градиент
DISconnected
21.07.2008, 22:11
Кто-то знает как нарисовать круговой градиент (не radial, а имеено градиаент что идёт по кругу, от 0 до 360 градусов)? Такой какой используется в стандартных Adobe лоадерах...
Из четырех дуг с линейным градиентом.
Alex_beginner
22.07.2008, 11:26
Сделать triangleFUN, т.е разбить весь круг на множество последовательных треугольников, одна вершина которых расположена в центре круга. Для каждого треугольника сделать линейный градиент от начальной вершины к противоположной грани треугольника.
дуг
треугольников
Секторами это называется
Секторами это называетсяВсегда думал что сектор - это когда две вершины принадлежат окружности, а третья совпадает с ее центром. А здесь - дуги, просто толстые)))
Alex_beginner
22.07.2008, 11:59
Секторами это называется
Kuruki! Спасибо, что просветил в сфере математики в разделе геометрии. Но наверно, если скажем, что нужно делать с помощью дуг и треугольников, тоже будет правильно. Кроме того, не все знают что такое сектора.:)
Есть еще вероятность, что мы о разном говорим. Лично я имел в виду вот что:
Да, Wolsh, вы правы, мы о разном говорим. В вашем случае это, наверное, усеченный сектор... или обрезок :)
Alex_beginner
22.07.2008, 14:13
Kuruki! Да и на счет треугольников Вы тоже ошиблись - увы, треугольник это не сектор.:)
При длине l стороны треугольника, вписанной в окружность, стремящейся к нулю, он действительно приближается к сектору, но тем не менее это не сектор.
Так я про это и говорю. Как вы собирались из треугольников круг собрать? Это будет многоугольник.
Alex_beginner
22.07.2008, 14:36
Правильно. При очень большом числе треугольников, внешняя граница многоугольника будет настолько детализирована, что отличить ее от окуржности не представляется возможным. Все зависит от количества треугольников.
chingachgoog
22.07.2008, 14:45
DISconnected, не понятно, что вы имеете ввиду?
Может это похоже, когда во флеш редакторе мы открываем панель ColorMixer, затем кликаем по цвету заливки или обводки и открывается окно, где справа вверху и есть пиктограмка с круговым градиентом?
Тогда, может быть тут поможет DisplacementMapFilter...
Alex_beginner
22.07.2008, 14:51
chingachgoog! Он имел ввиду градиент цвет которого постоянен по направлению радиус-вектора окружности, но изменяется в зависимости от угла этого радиус-вектора.
И зачем тут треугольники? Рисуется сектор, из двух линий и одной кривой безье. В зависимости от величины радиуса, подбирается угол сектора.
Alex_beginner
22.07.2008, 15:36
И зачем тут треугольники? Рисуется сектор, из двух линий и одной кривой безье. В зависимости от величины радиуса, подбирается угол сектора.
iNils!
Можно и так. Но при большом числе треугольников либо секторов в результирующем круге практически невозможно будет отличить первый и второй вариант. Хочу отметить, что работа со сплайнами несколько трудозатратна для Flash плэйера и вопрос эффективности описания дуги сплайном 2 степени неоднозначен, во всяком случае для меня.
Потом, непонятно, как Вы будете строить градиент?
Ну думаю, что этот круг будет по 100 раз в секунду перерисовываться и жрать ресурсы. Однако вы правы, ваш спор о терминах сбил меня с пути истинного, достаточно треугольников, а свурху положить круглую маску для отсечения углов.
А какие проблемы с построением градиента? Судя по вашим же словам
Он имел ввиду градиент цвет которого постоянен по направлению радиус-вектора окружности, но изменяется в зависимости от угла этого радиус-вектора.Каждый треугольник заливается градиентом от базового цвета до темной/светлой составляющей этого цвета, а у следующего треугольника базовый цвет отличается на шаг.
Alex_beginner
22.07.2008, 16:14
Я имел ввиду вот, что (возможно я Вас не понял):
И зачем тут треугольники? Рисуется сектор, из двух линий и одной кривой безье. В зависимости от величины радиуса, подбирается угол сектора.
Вы, наверное, хотели построить один сектор, с углом, соответствующим величине какого-либо объекта (в общем смысле слова), например, величине уже загруженных байт файла. Но тогда возникает вопрос, как построить градиент в одном единственном секторе, так чтобы его цвет зависел только от величины угла поворота, а не от позиции по направлению радиус-вектора?
chingachgoog
22.07.2008, 16:44
Наверное, что-то типа такого, но матрицу преобразований надо будет хорошо просчитать...
Alex_beginner
22.07.2008, 16:53
chingachgoog! Великолепное решение с помощью DisplacementMapFilter!!!
Если бы еще код содержал в себе алгоритм прироста градиента в зависимости от какой-либо величины, было бы супер! Если это возможно, покажите пожалуйста такой код.
Но тогда возникает вопрос, как построить градиент в одном единственном секторе, так чтобы его цвет зависел только от величины угла поворота, а не от позиции по направлению радиус-вектора?А тут не нужен градиент, размер на столько мал, что каждый сегмент будет иметь линейный цвет.
Alex_beginner
22.07.2008, 17:20
А, дак все таки будет множество сегментов, а то мне показалось, что Вы одним сегментом и одной кривой Безье обойтись хотели. Вот это меня и изумило :). Теперь все понятно. Спасибо.
DISconnected
22.07.2008, 17:27
Ого, ребята. Ну вы тут намудрили.
Да, я имел в виду то что послал Wolsh (спасибо кстати).
В Флэше можно это или програмно нарисовать (жрёт ресурсы) или секторами (больше секторов - чище, но больше играться).
Я думал просто есть способ нарисовать в Illustrator скажем и импортить в Flash. Потому как это: один раз сделал и забыл.
Но Wolsh уже послал файл - ещё раз спасибо. Дальше я уже цвета и размер поменяю легко.
chingachgoog
22.07.2008, 17:36
chingachgoog! Великолепное решение с помощью DisplacementMapFilter!!!
Если бы еще код содержал в себе алгоритм прироста градиента в зависимости от какой-либо величины, было бы супер! Если это возможно, покажите пожалуйста такой код.
Это не решение, а ноу-хау, причем крайне сырое.
Создание матрицы преобразования - процесс для меня интуитивно-эмпирический, так что алгоритм подсказать не смогу...
PS
По-моему, это не стандартные Adobe лоадеры начали использовать такой эффект, а MacOS... Хотя наверняка утверждать не могу.
Alex_beginner
22.07.2008, 17:44
Создание матрицы преобразования. Вы имели ввиду карту смещения?
Это не решение, а ноу-хау, причем крайне сырое.
Сырое оно...или не сырое... главное сделано кратко, лаконично и со вкусом:) Спасибо! Этот код мне поможет.
chingachgoog
22.07.2008, 17:51
ага, карта смещения
DISconnected, я вот тоже думал что больше - чище. Но толи мозгов не хватает все градиенты правильно расположить/развернуть, толи усидчивости... Ну в общем вот программно нарисовано. Любителей секторов предупреждаю - здесь только дуги.
В самом прямом смысле этого слова))))) Если только фигура из двух точек может считаться сектором :eek:
По поводу "нарисовать в иллюстраторе" - когда-то наивно полагал, что вот мол Флэш такой ограниченный векторный редактор, щас я в крутом нарисую и вставлю.... А вот только не вставишь ты во флэш того, что он не поддерживает. Например - такой градиент (он кстати называется не круговой, а конусный или конический, или угловой) в векторном виде не вставишь :( Ну а в битмапе нарисовать - в фотошопе это пять секунд.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.