GradientFill

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

GradientFill

Сообщение X-BOND » 15.08.2005 (Пн) 11:57

Вопрос такой, как можно рационально реализовать четырехцветную градиентную заливку прямоугольника (вертексы по углам). По примеру из API-Guide (с помощью двух треугольников) получается криво (рис1, рис2). А надо, что бы было как на рис.3. Напрашивается вариант использовать 4 треугольника:
Изображение
где центральный вертекс имеет среднеее значение остальных цветов.
Но и тормозов в таком варианте будет в два раза больше. Может это все изобретение велосипеда? Может есть готовый нормальный алгоритм по данному сабжу?

Изображение



P.S.
И еще, как правильно преобразовать Long-цвет в RGB составляющие для структуры TRIVERTEX

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.08.2005 (Пн) 12:04

Вопрос первый.
Таки какой из рисунков правильный?

Вопрос второй.
The color information of each channel is specified as a value from 0x0000 to 0xff00.
Так что надо отмасштабировать байтовую компоненту путём умножения её на коэфф., после чего применить функцию LongToUShort, которая в API-Guide представлена в примере по заливке.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.08.2005 (Пн) 12:07

GradientFillTriangle не подходит?

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.08.2005 (Пн) 12:09

Да, я там опечатался. Правильный рисунок 3

Чем определяется коэффициент?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.08.2005 (Пн) 12:11

Чем опредялется коэффициент... Ммммм...
Тем, что байтовая компонента от 0 до 255, а градиентная - от 0 до 65280.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.08.2005 (Пн) 12:11

Amed писал(а):GradientFillTriangle не подходит?

Первые два рисунка, это оно и есть

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.08.2005 (Пн) 12:20

GSerg писал(а):Чем опредялется коэффициент... Ммммм...
Тем, что байтовая компонента от 0 до 255, а градиентная - от 0 до 65280.

Тобишь 256? Так что-ли?

А почему в том же примере из API-Guide максимальное значение компоненты определяется как -256 ?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.08.2005 (Пн) 12:28

А ты позырь, чему равно &hf00 и чему равно &hff00&
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 15.08.2005 (Пн) 12:38

Ну вот тебе градация, которая тебе нужна:
Вложения
4Grad.rar
(820 байт) Скачиваний: 26
Программисты не глючат - глючат компиляторы...

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.08.2005 (Пн) 13:01

CodeName33 писал(а):Ну вот тебе градация, которая тебе нужна:

Спасибо, но мне надо 4 цвета, а там только два.
Я на рисунках специально отобразил только два цвета, чтобы было явно видно разницу.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 15.08.2005 (Пн) 13:08

X-BOND, ну 4, так 4:
Вложения
4Grad4.rar
(857 байт) Скачиваний: 28
Программисты не глючат - глючат компиляторы...

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.08.2005 (Пн) 13:46

CodeName33 писал(а):X-BOND, ну 4, так 4:

Да, это оно! Спасибо! Слушай, ты этот примерчик сам что-ли накидал?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.08.2005 (Пн) 13:57

Результат примера прямо как из Апигайда, я и удивился, что сам не заметил...
Последний раз редактировалось Amed 15.08.2005 (Пн) 14:04, всего редактировалось 1 раз.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 15.08.2005 (Пн) 14:01

Amed, из APiGuide?! А я сам его накатал! ГЫ! Мог не парится и оттуда взять, жаль только на работе нет ApiGuide...
Программисты не глючат - глючат компиляторы...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.08.2005 (Пн) 14:05

Воть


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67

    TopList