Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2011, 23:21   #21
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

маленькая проблемка, шарик ведь просто перемещается по коорд нитки и если к нему прикрепить конус снизу, он будет на одном и томже месте находится, надо чтобы шарик с конусом поворачивались на тот угол на который поворачивается линия
NiCola999 вне форума Ответить с цитированием
Старый 04.01.2011, 00:23   #22
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

А вот этого, пардон, действительно не понял.
> шарик ведь просто перемещается по коорд нитки
Какой "нитки"? Подвеса? Нет, не так.

> он будет на одном и томже месте находится,
Кто "он"? Шарик или конус?

> надо чтобы шарик с конусом поворачивались на тот угол на который поворачивается линия
Какая "линия"? Проекция траектории на XOZ, что-ли?
...
Можно, ежели не трудно, более строго следить за терминологией из предметной области?.. Что нужно? "Прилепить" средствами OpenGL к шарику снизу конус и при этом, в процессе моделирования колебаний, корректировать положение конуса так, чтобы его ось совпадала с осью подвеса (нити)?

¡Hasta maňana!
Vago вне форума Ответить с цитированием
Старый 04.01.2011, 02:04   #23
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Цитата:
"Прилепить" средствами OpenGL к шарику снизу конус и при этом, в процессе моделирования колебаний, корректировать положение конуса так, чтобы его ось совпадала с осью подвеса (нити)?
так точно =))

Последний раз редактировалось NiCola999; 04.01.2011 в 12:39.
NiCola999 вне форума Ответить с цитированием
Старый 04.01.2011, 14:25   #24
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

up )
NiCola999 вне форума Ответить с цитированием
Старый 04.01.2011, 16:23   #25
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

вот что у меня получилось. Осталось конус присабачить и сориентировать его с осью подвеса, на счет последнего, что-то ничего в голову не приходит
Изображения
Тип файла: png fuko.PNG (37.2 Кб, 85 просмотров)

Последний раз редактировалось NiCola999; 04.01.2011 в 16:27.
NiCola999 вне форума Ответить с цитированием
Старый 04.01.2011, 23:46   #26
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

110104.jpg
Код:
// ==================================================
// DrawCone
// ==================================================
void TestGLCanvas::DrawCone() {

   double const PI = 4.*atan(1.) ;
   double const RAD_TO_DEG = 180. / PI ;
   
   GLfloat rCone = 0.05 ;

   GLfloat  aX    = - atan( ballPos[2] / (y0 - ballPos[1] ) ) ,
            aXdeg = aX * RAD_TO_DEG ,  
            aZ    =   atan( ballPos[0] / (y0 - ballPos[1] ) ) ,
            aZdeg = aZ * RAD_TO_DEG ;

   glPushMatrix() ;

   // По умолчанию конус в OpenGL отрисовывается вдоль оси OZ.
   // Поэтому дополнительно поворачиваем коорд. систему на PI/2 (+aX) вокруг OX;
   // теперь конус будет смотреть остриём вниз.
   glRotated(  90. + aXdeg, 1., 0., 0. ) ;
   // Теперь - поворот на aZ
   // После пред. поворота на P/2 ось OY как бы стала OZ. Поэтому 1 - ДЛЯ ВТОРОЙ оси
   glRotated(        aZdeg , 0., 1., 0. ) ; 

   // Матрицы, обратные матрицам поворотов
   GLfloat mRotXT[3][3] = { 1., 0., 0.,
                            0.,  cos( PI/2.+aX), sin( PI/2.+aX ),
                            0., -sin( PI/2.+aX),  cos( PI/2.+aX ) } ,
                          
           mRotYT[3][3] = { cos( aZ), 0., -sin( aZ ),
                            0., 1., 0.,
                            sin( aZ ), 0., cos( aZ ) } ;

   GLfloat ballPos1[3], ballPos2[3] ;

   VectMatMul3x3( ballPos, &mRotXT[0][0], ballPos1 ) ;
   VectMatMul3x3( ballPos1, &mRotYT[0][0], ballPos2 ) ;
   // Теперь в ballPos2[] - ballPos[] с учётом двух поворотов

   glTranslatef( ballPos2[0], ballPos2[1], ballPos2[2] ) ;

   glColor3ub( 96, 146, 189 ) ;
   auxSolidCone( rCone, 0.20 ) ;

   glPopMatrix() ;

}


// ==================================================
// VectMatMul3x3
// ==================================================
void TestGLCanvas::VectMatMul3x3( GLfloat* a, GLfloat* b, GLfloat* x ) {

   int i, j ;

   for ( i = 0; i < 3; i++ ) {
      x[i] = 0. ;
      for ( j = 0; j < 3; j++ ) 
         x[i] += a[j] * b[i*3+j] ;
   }

}

Последний раз редактировалось Vago; 04.01.2011 в 23:48.
Vago вне форума Ответить с цитированием
Старый 05.01.2011, 01:18   #27
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

спасибо, очень выручил!

Последний раз редактировалось NiCola999; 05.01.2011 в 01:32.
NiCola999 вне форума Ответить с цитированием
Старый 05.01.2011, 01:32   #28
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

для поворота конуса в сторону подвеса достаточно было этого

Код:
GLfloat  aX    = - atan( ballPos[2] / (y0 - ballPos[1] ) ) ,
            aXdeg = aX * RAD_TO_DEG ,  
            aZ    =   atan( ballPos[0] / (y0 - ballPos[1] ) ) ,
            aZdeg = aZ * RAD_TO_DEG ;
а я не правильно считал, поэтому фигня получалась
я считал так
aX = - atan(ballPos[2]/ballPos[1])
забыл про y0
NiCola999 вне форума Ответить с цитированием
Старый 14.05.2015, 23:05   #29
Аня222
Новичок
Джуниор
 
Регистрация: 14.05.2015
Сообщений: 1
По умолчанию

Здравствуйте, а можете мне скинуть пожалуйста весь код программы , если остался, очень нужна программа . Спасибо
Аня222 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параметрический маятник Talker6 Помощь студентам 13 03.05.2010 18:18
Моделирование (маятник) alexmikt Общие вопросы C/C++ 0 21.04.2010 23:01
маятник manuk Общие вопросы C/C++ 3 20.04.2010 21:32
Математический маятник StudeHt Помощь студентам 0 15.03.2010 16:48
Маятник SuperEgo Помощь студентам 3 15.06.2007 10:03