Тройной Градиент
Программа должна принимать координаты трёх точек и их цвета (возможно, с альфа-каналом), и выдавать битмап с треугольником, плавно залитым тремя цветами.
Буду очень благодарен за любую информацию, мне действительно необходимо сделать это, и как можно быстрее!
Все зависит от того, какой именно градиент тебе нужен, какие требования ты на него накладываешь(отсутствие цветовых изломов, гладкости и т.п.). Простой совет - поэкспериментировать с определением расстояний до опорных точек. Можно попробовать использовать линейную интерполяцию дважды: сначала для сторон, а после - для точек внутри треугольника.
Тебе обязательно псать с использованиям OpenGL или ты хочеш упростить себе жизнь ???
Цитата:
Originally posted by nzv
В OpenGL можно создать многоугольник и назначить каждой вершине свой цвет. Мне нужно срочно, на любом языке реализовать такой алгоритм "треугольной заливки" с нуля, безо всяких сторонних библиотек.
Программа должна принимать координаты трёх точек и их цвета (возможно, с альфа-каналом), и выдавать битмап с треугольником, плавно залитым тремя цветами.
Буду очень благодарен за любую информацию, мне действительно необходимо сделать это, и как можно быстрее!
В OpenGL можно создать многоугольник и назначить каждой вершине свой цвет. Мне нужно срочно, на любом языке реализовать такой алгоритм "треугольной заливки" с нуля, безо всяких сторонних библиотек.
Программа должна принимать координаты трёх точек и их цвета (возможно, с альфа-каналом), и выдавать битмап с треугольником, плавно залитым тремя цветами.
Буду очень благодарен за любую информацию, мне действительно необходимо сделать это, и как можно быстрее!
Для составления цветов можно использовать сплайн.
Можно попробовать так:
цвет точки треугольника можно задать так (k1 * clr1 + k2 * clr2 + k3 * clr3), где k1 + k2 + k3 = 1;
Коэффициенты k1, k2, k3 следует расчитывать исходя из удаленности точки от каждой из вершин.
Цитата:
цвет точки треугольника можно задать так (k1 * clr1 + k2 * clr2 + k3 * clr3), где k1 + k2 + k3 = 1;
Коэффициенты k1, k2, k3 следует расчитывать исходя из удаленности точки от каждой из вершин.
Такой метод очевиден, но к сожалению дает плохой результат (ИМХО). Я делал на примере 4-х точек предложенным методом - но получалось нереалистично.
Цитата:
Originally posted by Sister
Такой метод очевиден, но к сожалению дает плохой результат (ИМХО). Я делал на примере 4-х точек предложенным методом - но получалось нереалистично.
Такой метод очевиден, но к сожалению дает плохой результат (ИМХО). Я делал на примере 4-х точек предложенным методом - но получалось нереалистично.
Тут самое главное правильно расчитать коэффициенты!!!