вот два фрашмента с наиболее большим кол-вом непоняток
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