Re: Цветовая карта. Танцую с бубном (
От: Кодт Россия  
Дата: 17.06.10 08:47
Оценка:
Здравствуйте, Seffka, Вы писали:

S>
S>      color1=color1/coef;

S>      if ((color1 > 0 ) && (color1<0.2))
S>        {g=color1*5;}
S>      if ((color1 >= 0.2 ) && (color1<0.4))
S>        {r=2-5*color1;}
S>      if ((color1 >=0.6 ) && (color1<0.8))
S>        {g=4-color1*5;}
S>      if ((color1 >=0.8 ) && (color1<=1.0))
S>        {r=color1*5-4;}
S>      if ((color1>0.4) && (color1<0.6))
S>        {blue=color1*5-2;}

S>      glColor3f(r,g,r);
S>


Переводя на человечий язык: R,G,B как функции от значения color1
0.0  0.2  0.4  0.6  0.8  1.0

 ·    +    ·    ·    ·    +
 ·    |\   ·    ·    ·   /|
 ·    | \  ·    ·    ·  / |
 ·    |  \ ·    ·    · /  |
 ·    |   \·    ·    ·/   |
-+----+    +----+----+    +- r

 ·    +    ·    +    ·    ·
 ·   /|    ·    |\   ·    ·
 ·  / |    ·    | \  ·    ·
 · /  |    ·    |  \ ·    ·
 ·/   |    ·    |   \·    ·
-+    +---------+    +----+- g

 ·    ·    ·    +    ·    ·
 ·    ·    ·   /|    ·    ·
 ·    ·    ·  / |    ·    ·
 ·    ·    · /  |    ·    ·
 ·    ·    ·/   |    ·    ·
-+----+----+    +----+----+- blue

Вот такая внезапная радуга.
— так задумано
— так получилось

S>вот эта процедурка выдает цветовую карту от function

S>при function=y выдается отличная радуга, при function=x выдается какая-то хрень, точнее какой-то странный спектр. Опытным путем я понял что косяк в синей компоненте, названной blue. Помогите, пожалуйста, найти косяк, а то я уже ниче не понимаю )

Кривизна потенциально спряталась в загадочной переменной coef — банально, может быть неправильно установлена, из-за чего color1 не нормировался.
И откровенная кривизна — в вызове функции glColor3f(r,g,r) — без слов ясно.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.