Не могу понять как управлять камерой. Использую Borland Builder 6 C++.
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { static int lastX = -1; static int lastY = -1; if ( lastX == -1 ) // not initialized { lastX = X; lastY = Y; } if( Shift.Contains(ssLeft) ) { yaw -= (Y - lastY) * 0.02; roll += (X - lastX) * 0.02; } lastX = X; lastY = Y; camera.setEulerAngles ( yaw, pitch, roll );
Не понятно, почему roll += (X - lastX) * 0.02;, это же вроде z координата?
Подскажите как нужно передавать в таком случае z координату, ну например при вращении колеса мыши?
void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta, TPoint &MousePos, bool &Handled) { zZoom += WheelDelta*0.01; }
zZoom как использовать?
А если сцену нужно наклонить, а не повернуть, или отодвинуть по какой нибудь оси? (типа glTranslatef и glRotatef)