Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Написать 3 крутящихся чайника на Open GL C++ 6.0, Написать 3 крутящихся чайника 
:(
    Опции темы
holymax
Дата 20.5.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 16.5.2005

Репутация: нет
Всего: нет



Нужно написать для института контрольную.. Простые вещи я зделал, а эти я не могу такие сложные знания не хватает...
Вот сама задача...
Делать на С++ 6.0 Open GL:

Напишите программу, которая выводит три вращающихся чайника, один из них в горошек, другой в полоску, третий в цветочек. В качестве источника света используйте прожектор, который направлен на один из чайников, но меняет направление света через каждые 5 секунд.

Я тут надыбал малость не то но похоже может это кто сможет переделать?

Код

#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>

void CALLBACK resize(int width,int height)
{
   glViewport(0,0,width,height);
   glMatrixMode( GL_PROJECTION );
   glLoadIdentity();
   glOrtho(-5,5, -5,5, 2,12);   
   gluLookAt( 0,0,5, 0,0,0, 0,1,0 );
   glMatrixMode( GL_MODELVIEW );
}    


void CALLBACK display(void)
{ static int time = 0;
GLUquadricObj *quadObj; 
GLfloat front_color[] = {1,0,0,2}; //источник света

quadObj = gluNewQuadric(); 

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
 
glMaterialfv(GL_FRONT, GL_SPECULAR, front_color);

/*3 разные зеркальные фигуры, которые вращаются вокруг своей оси 
и отражают красный источник света.  */
    
glPushMatrix();

glRotated(time/1, 0.0, 1.0, 0.0);      

    glTranslated(0,3,0);
    glColor3d(0.628281, 0.555802, 0.366065);
    auxSolidTeapot(1);      // чайник

    glTranslated(0,-2,0);
    glColor3d(0.628281, 0.534555, 0.544333);
    auxSolidTeapot(1);  //  чайник

    glTranslated(0,-4,0);
    glColor3d(0.628281, 0.555802, 0.366065);
    auxSolidTeapot(1);    // чайник

glPopMatrix();

       time++;


  auxSwapBuffers();
}


void main()
{
float pos[4] = {3,3,3,1};
float dir[3] = {-1,-1,-1};

    GLfloat mat_specular[] = {1,1,1,1 };

    auxInitPosition( 50, 10, 500, 600);
    auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE );
    auxInitWindow( "зеркальные фигуры" );
    auxIdleFunc(display);
    auxReshapeFunc(resize);

  
    glEnable(GL_DEPTH_TEST);

  glEnable(GL_COLOR_MATERIAL);

    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);

    glLightfv(GL_LIGHT0, GL_POSITION, pos);
    glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);


    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
    glMaterialf(GL_FRONT, GL_SHININESS, 128.0);


    glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);


    auxMainLoop(display);
}

PM MAIL   Вверх
holymax
Дата 23.5.2005, 05:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 16.5.2005

Репутация: нет
Всего: нет



Никто не может помочь передлать эту программу?

Это сообщение отредактировал(а) holymax - 23.5.2005, 05:49
PM MAIL   Вверх
Гость_holymax
Дата 29.5.2005, 21:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мда... Спасибо за помощь... Ваши советы мне очень помогли... 8-((
  Вверх
Yanis
Дата 29.5.2005, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 4
Всего: 111



Например меня, к сожалению, такому не учат smile А тебя этому учат вот ты и напиши. Возьми лекции, книгу и вперёд.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
gepard
Дата 30.5.2005, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



holymax
А что ещё надо? Текстуру наложить? Смотри уроки NeHe(http://pmg.org.ru/), там есть генерация текстур для поверхностей. У него на примере сферы, а у тебя чайник. По сути - один фиг, автомат.


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.