Здравствуйте Все! Вот что получилось насчет сабжа:
GV>Подскажите как нарисовать при помощи OpenGL поверхность вращения, есть параметрические уравнения для координат x(t),y(t)? Надо вращать вокруг оси 0Y, с дальнейшей целью раскрасить и вращать получившуюся картинку(по нажатию клавиш).(пишу на С++,простое приложение без использования WinAPI и MFC)
Еще раз повторюсь человек я начинающий! принимаются замечания и предложения по улучшению и оптимизации, если такие возникнут буду рад!
#include <GL/glut.h>
#include <math.h>
#include <iostream.h>
#define PI (3.1415926)
//const GLfloat Pi=PI;//=acos(-1);
GLfloat T=2;//параметр сферы
double delta_t=0.1,delta_r=0.1;//шаги изменения
double ANGLE0=0.0,ANGLE1=2*PI;//отрезок изменения угла поворота
double T0=-2*PI,T1=2*PI;//отрезок изменения параметра t для сл1
double route_y=0;
double route_z=0;
double route_delta=0.5;
//----------------------------------------------------------------
//сл1
double xx(double t)
{
glBegin(GL_TRIANGLE_STRIP);//полоса из треугольников
for(t=T0;t<=T1;t+=delta_t)
{
curx=xx(t);//значение xx(t) в текущей точке t
cury=yy(t);//значение yy(t) в текущей точке t
curderx=xn(t);//значение xn(t) в текущей точке t
curdery=yn(t);//значение yn(t) в текущей точке t
if(t+delta_t<=T1)
{
curxst=xx(t+delta_t);//значение xx(t+delta_t) в текущей точке t
curyst=yy(t+delta_t);//значение yy(t+delta_t) в текущей точке t
curderxst=xn(t+delta_t);//значение xn(t+delta_t) в текущей точке t
curderyst=yn(t+delta_t);//значение yn(t+delta_t) в текущей точке t
}
else
{
curxst=xx(T1);
curyst=yy(T1);
curderxst=xn(T1);
curderyst=yn(T1);
}
void keys(unsigned char key, int x, int y)
{
switch (key)
{
case 'u':route_y=route_delta;break;
case 'd':route_y=-route_delta;break;
case 'l':route_z=route_delta;break;
case 'r':route_z=-route_delta;break;
case 'o':route_y=0; route_z=0;break;
}
}
//----------------------------------------------------------------
— Сильнее любви, богатства и власти —
время. Праздник жизни прекрасен. Но наступает час, и с самой лучшей
компанией приходится расставаться...
Простите что-то скрипты не сработали, поэтом текст не раскрашен, как можно было при помощи [ccode]