public void Zoom(float value, float stopRadis) { var vec = (LookAtPosition - Position); float dis = 0; vec = vec.Normalize(out dis); dis = ((dis-stopRadis) - value); if (dis < 0) value += dis; vec *= value; Position += vec; UpPosition += vec; }