Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 17.11.2007, 16:12   #1
pipns
Нуждающийся
 
Регистрация: 01.10.2006
Сообщений: 55
Написано одно полезное сообщение
(для 0 участников)
Cos и Sin в OpenGL!

Не так давно я начал учить OpenGL, вместе с Delphi и у меня всплыла проблема с Cos и Sin. Я поварачиваю объект с помощью Rotatef..., пытаюсь сдвинуть его с места, как в игре "Астероид" - Translatef.
А проблема в том, что он двигается не так, как надо - танцует, не могу понять почему?
исходник здесь же...

Последний раз редактировалось pipns, 03.11.2009 в 08:54.
(Offline)
 
Ответить с цитированием
Старый 17.11.2007, 18:16   #2
HolyDel
 
Регистрация: 25.09.2006
Сообщений: 6,030
Написано 1,469 полезных сообщений
(для 2,690 пользователей)
Re: Cos и Sin в OpenGL!

вот два фрашмента с наиболее большим кол-вом непоняток
glPushMatrix;
 glTranslatef (X, Y, 0);
 glPushMatrix;
 glRotatef (Angle, 0, 0, 1);
 glBegin(GL_POLYGON);
  glVertex2f(0.0, 0.02);
  glVertex2f(0.05, 0.0);
  glVertex2f(0.0, -0.02);
 glEnd;
 glPopMatrix;
 glPopMatrix;
1. операции зачем ты два раза в стек пихаеш по большому счету одну матрицу?
  if Key = VK_ESCAPE then Close;
  if Key = VK_LEFT then Angle := Angle + 10;
  if Key = VK_RIGHT then Angle := Angle - 10;
  if Key = VK_UP then begin
   X := Cos(Angle) * 0.1 + X;
   Y := Sin(Angle) * 0.1 + Y;
2. Тут ты не задаеш координаты относительно угла, а ИЗМЕНЯЕШ их, ИНКРЕМЕНТРУЯ их.
надо наверно так
X := Cos(Angle) * 0.1 + X0;
Y := Sin(Angle) * 0.1 + Y0;
, где x0, y0 - центр, вокруг чего надо крутить.
Да, углы вроде в радианах в дельфи. такчто учти. диапазон от -1.57 до 1.57
(Offline)
 
Ответить с цитированием
Старый 17.11.2007, 21:08   #3
pipns
Нуждающийся
 
Регистрация: 01.10.2006
Сообщений: 55
Написано одно полезное сообщение
(для 0 участников)
Re: Cos и Sin в OpenGL!

Вроде, как я понял в чем проблема, буду его исправлять. Спасибо!
На счет первого твоего вопроса, ты, имел введу, зачем я использую два раза операцию glPushMatrix;...glPopMatrix?
(Offline)
 
Ответить с цитированием
Старый 17.11.2007, 21:31   #4
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Cos и Sin в OpenGL!

Дешевле каждый раз вызывать glLoadIdentity(); перед трансформациями.
(Offline)
 
Ответить с цитированием
Старый 17.11.2007, 23:13   #5
HolyDel
 
Регистрация: 25.09.2006
Сообщений: 6,030
Написано 1,469 полезных сообщений
(для 2,690 пользователей)
Re: Cos и Sin в OpenGL!

alcoSHoLiK, а если он захчет реализовать нормальную камеру? или родительскую привязку?
(Offline)
 
Ответить с цитированием
Старый 17.11.2007, 23:27   #6
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Cos и Sin в OpenGL!

Тогда и одного пуша хватит.
(Offline)
 
Ответить с цитированием
Старый 18.11.2007, 10:12   #7
pipns
Нуждающийся
 
Регистрация: 01.10.2006
Сообщений: 55
Написано одно полезное сообщение
(для 0 участников)
Re: Cos и Sin в OpenGL!

Ответ простой, это пример моей проблемы, вообще-то я встретил ее при созданиии камеры!
(Offline)
 
Ответить с цитированием
Старый 18.11.2007, 10:43   #8
pipns
Нуждающийся
 
Регистрация: 01.10.2006
Сообщений: 55
Написано одно полезное сообщение
(для 0 участников)
Re: Cos и Sin в OpenGL!

Проблема была в радианах, теперь все отлично, буду творить...
А вообще, можно сделать игру или скрин-прогу на Делфи, чтобы весил не больше 64Кбайт, если, например, создать окно вручную и т.д.?
(Offline)
 
Ответить с цитированием
Старый 19.11.2007, 07:14   #9
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: Cos и Sin в OpenGL!

А вообще, можно сделать игру или скрин-прогу на Делфи, чтобы весил не больше 64Кбайт.
Маленькую прогу можно... если без графики и тока на WinApi.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL pax C++ 134 04.10.2016 12:07
OpenGL 3 HolyDel C++ 63 11.12.2014 19:23
Help:::OpenGl!!! zheland 3D-программирование 30 08.05.2008 16:52
OpenGL 3.0 HolyDel C++ 10 18.11.2007 10:11


Часовой пояс GMT +1, время: 05:27.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com