Я строю 2D-график с использованием OpenTK. Я увеличиваю, изменяя значение fovy в матрице проекции в зависимости от события OnMouseWheel
. Масштабирование работает нормально, но оно ограничено fovy> 0. Мне нужно увеличить, чтобы увидеть больше деталей на графике. Есть ли лучший способ увеличения, который не ограничен каким-либо числом?
private void OnRenderFrame()
{
Matrix4 view, projection;
projection = Matrix4.CreatePerspectiveFieldOfView(((float)fov * (float)Math.PI) /(float)180, (float)Width / (float)Height, 0.01f, 100f);
view = Matrix4.LookAt(CameraPos,
CameraPos + CameraFront, CameraUp);
shader.Use();
shader.SetMatrix4("model", Matrix4.Identity);
shader.SetMatrix4("view", view);
shader.SetMatrix4("projection", projection);
SwapBuffers();
base.OnRenderFrame(e);
}
protected override void OnMouseWheel(MouseWheelEventArgs e)
{
if (fov > 90.0f)
{
fov = 90.0f;
}
else if (fov <5.0f)
{
fov = 5.0f;
}
else
{
fov -= e.DeltaPrecise;
}
base.OnMouseWheel(e);
}