Показать сообщение отдельно
Старый 17.11.2007, 21:16   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
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)
 
Ответить с цитированием