void mapper(double x1 ,double x2, double y1,double y2,double scr1,double scr2)
{
double color1=0;double t;
double xc,yc,r,g,blue;
yc=y1;
r=1;
g=0;
blue=0;
for (yc=y1;yc<=y2;yc=yc+(y2-y1)/scr2)
{
for (xc=x1;xc<=x2;xc=xc+(x2-x1)/scr1)
{
color1=function(xc,yc);
color1=color1/coef;
if ((color1 > 0 ) && (color1<0.2))
{g=color1*5;}
if ((color1 >= 0.2 ) && (color1<0.4))
{r=2-5*color1;}
if ((color1 >=0.6 ) && (color1<0.8))
{g=4-color1*5;}
if ((color1 >=0.8 ) && (color1<=1.0))
{r=color1*5-4;}
if ((color1>0.4) && (color1<0.6))
{blue=color1*5-2;}
glColor3f(r,g,r);
glBegin(GL_POINTS);
glVertex2f(xc*scr1/(x2-x1),yc*scr2/(y2-y1));
glEnd();
}
}
}
добавил отбивку и раскраску, убрал icon_cool.gif :) — Кодт
вот эта процедурка выдает цветовую карту от function
при function=y выдается отличная радуга, при function=x выдается какая-то хрень, точнее какой-то странный спектр. Опытным путем я понял что косяк в синей компоненте, названной blue. Помогите, пожалуйста, найти косяк, а то я уже ниче не понимаю )
Здравствуйте, 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) — без слов ясно.