Я пытаюсь создать проект OpenGL C # для увеличения и уменьшения масштаба сцены.Я хочу войти и выйти из режима увеличения при нажатии клавиши Z.И затем, когда я нахожусь в режиме масштабирования (клавиша Z нажата первый раз), используйте колесико мыши для увеличения / уменьшения масштаба сцены.Когда я закончил действие масштабирования, я хочу выйти из режима масштабирования (снова нажмите Z), и затем колесо мыши прекратит масштабирование моей сцены.Спасибо за помощь!
protected override void OnUpdateFrame(FrameEventArgs e)
{
base.OnUpdateFrame(e);
Matrix4 lookat = Matrix4.LookAt(eyeVector, targetVector, upVector);
GL.MatrixMode(MatrixMode.Modelview);
GL.LoadMatrix(ref lookat);
KeyboardState keyboard = Keyboard.GetState();
if (keyboard[Key.Z] && !keyboard.Equals(lastKeyPress))
{
}
if (keyboard[Key.Z] && !keyboard.Equals(lastKeyPress))
{
}
lastKeyPress = keyboard;
}
Это функция zoomOut:
public Vector3 zoomOut(Vector3 actual)
{
if(zoomLimits[1]<=actual.X || zoomLimits[1] <= actual.Y || zoomLimits[1] <= actual.Z) {
Console.WriteLine("Limita de zoomOut a fost atinsa!");
return actual;
}
Vector3 nou = new Vector3(actual.X + 5, actual.Y + 5, actual.Z + 5);
return nou;
}
Здесь я просто изменяю eyeVector из матрицы lookat.Но у меня есть некоторые ограничения.Если я выйду за эти пределы, сцена исчезнет.У вас есть идеи, чтобы решить эту проблему?Я не хочу ограничения для увеличения.