bad_duck писал(а):
уроков нет наверно потому, что это всё нужно загружать из готовой модели, а не считать каждый раз при отрисовке. И для отрисовки лучше использовать не glBegin(), а вершинные буфера
http://pmg.org.ru/nehe/nehe45.htmДа и закрашивать их тоже не нужно - на это есть текстуры
Но вот код из моего редактора, может он тебе поможет...
Код:
float xlen=xlength-1,ylen=ylength-1,pi=3.14159,ang,phi,alp;
вот цилиндр
Код:
for(int j=0;j<ylength;j++)
{
for(int i=0;i<xlength;i++)
{
ang=(xlength-i-1)*2.0015*pi/(xlen)/360*angle;
points[j*xlength+i].x=rad*cos(ang);
points[j*xlength+i].y=j*Heigh/ylen; //Heigh - высота цилиндра
points[j*xlength+i].z=rad*sin(ang);
}
}
вот сфера
Код:
for(int j=0;j<ylength;j++)
{
ang=j*pi/ylen*angle/360;
phi=(j+1)*pi/ylen;
float angcos=cos(ang);
float angsin=sin(ang);
float phicos=cos(phi);
float phisin=sin(phi);
for(int i=0;i<xlength;i++)
{
alp=i*2.00014*pi/xlen;
float alpcos=cos(alp);
float alpsin=sin(alp);
points[j*xlength+i].x=rad*angsin*alpsin;
points[j*xlength+i].y=rad*angcos;
points[j*xlength+i].z=rad*angsin*alpcos;
}
}
надеюсь, конус понятно как делать.
Спасибо!! сейчас попробую нарисовать эти фигуры
Насчёт текстур .... Я наложил на кольцо текстуру , но закрашивается только кольцо а внутри снова прозрачность ... поэтому я и подумал что сначала надо закрасить середину и поверх уже накладывать , как в уроках NeHe накладывали на куб .
ещё вот какая байда получается ....
все 4 кольца привязаны друг к другу glTranslatef(-0.4f,0.0f,0.0f);
и когда я меняю код
Код:
void Draw3()
{
if(X==1)
{
glTranslatef(-0.4f,0.0f,0.0f);
glColor3f(0.1f,0.1f,1.0f);
n=256;
glLineWidth(5.0);
glBegin(GL_LINE_LOOP);
for (int i = 0; i < n; i++)
{
double angle = 2*pi*i/n;
glVertex2f(rad*cos(angle), rad*sin(angle));
}
glEnd();
}
else
{
void Draw3()
{
glTranslatef(-0.4f,-0.5f,0.0f);
glColor3f(0.7f,0.7f,1.0f);
n=256;
glLineWidth(5.0);
glBegin(GL_LINE_LOOP);
for (int i = 0; i < n; i++)
{
double angle = 2*pi*i/n;
glVertex2f(rad*cos(angle), rad*sin(angle));
}
glEnd();
}
}
}
все последующие 10 фигур сдвигаются в зависимости от предыдущей ....
как можно сделать так чтоб все фигуры рисовались независимо друг от друга , и когда я меняю действия(код) 1й из них - остальные оставались на месте
?